Я пытаюсь получить данные из таблицы 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
Я пытался получить ваш запрос и запустить в дб-скрипка. Я также не получил никакого результата, поэтому я перепроверил ваше состояние и попробовал их отдельно. Ошибка была в состоянии «searchterm».
Вы используете оператор ~ *, который соответствует, в соответствии с документация, Regex без учета регистра. Так как% не является шаблоном в Regex, он буквально соответствует «% ageing%». Только если вы используете LIKE в запросе. % будет использоваться в качестве подстановочного знака.
Вы можете использовать правильный Regex или переключиться на LIKE.
Других решений пока нет …