Моя база данных - porstgres, и я пытаюсь написать запрос, который будет использоваться как или ~ (postgres regex). Я не мог написать этот запрос, используя on.Как использовать 'like' в запросе Anorm?
так вот что я пытался написать:
SQL(s"""SELECT id, name
|FROM my_table
|WHERE name ~ '^{name}'""")
.on('name -> name).as(parser.*)
Или:
SQL(s"""SELECT id, name
|FROM my_table
|WHERE name like '{name}%'""")
.on('name -> name).as(parser.*)
Код, который работает для меня не использовать дальше. И это выглядит следующим образом:
SQL(s"""SELECT id, name
|FROM my_table
|WHERE name """.concat(s"like '$name%'").as(parser.*)
Есть ли лучший способ для достижения этой цели?
В случае, если кто-либо с трудом объяснил разницу между ними. Второй пример cchantep использует переменную 'name', если она находится в области видимости. Некоторые (включая меня) предпочитают прямо диктовать интерполяционные переменные 'on', но все, что плавает ваша лодка. – mienaikoe
Интерполяция имеет лучшую производительность – cchantep
в вашем первом фрагменте, если бы вы случайно имели значение '' name -> s "$ name%" '? – wwkudu