Проблемы при составлении php sql запроса для таблицы postgresql с использованием LIKE

Я пытаюсь получить данные из таблицы postgresql, поэтому я написал код. Сейчас я пытаюсь составить SQL-запрос, но он не работает. С помощью моего запроса я пытаюсь найти в таблице genes_searchterms и найти все идентификаторы geneID, где в типах столбцов значение равно Pathway, а в поисковой строке столбца присутствует слово age.
Ниже приведен код для составления моего запроса:

$sqlquery = "SELECT DISTINCT \"gene_id\" FROM \"" . \"genes_searchterms\" .
"\" WHERE ". "(\"types\" LIKE  '". \"Pathway\" . "'
AND  \"searchterm\" LIKE '" . \"%aging%\" ."') ";

Что-то не так в составе моего запроса? Я использую drupal и не получаю ошибок при выполнении кода. Я не могу понять, где я ошибся.
Я использую PostgreSQL 9.2.23.
В скрипке часть моего стола
https://www.db-fiddle.com/f/t7ThJ7Aen9XYzv2EtepinP/0

1

Решение

Я пытался получить ваш запрос и запустить в дб-скрипка. Я также не получил никакого результата, поэтому я перепроверил ваше состояние и попробовал их отдельно. Ошибка была в состоянии «searchterm».

Вы используете оператор ~ *, который соответствует, в соответствии с документация, Regex без учета регистра. Так как% не является шаблоном в Regex, он буквально соответствует «% ageing%». Только если вы используете LIKE в запросе. % будет использоваться в качестве подстановочного знака.

Вы можете использовать правильный Regex или переключиться на LIKE.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector