Я пытаюсь найти части строки (слово, слово, слово, слово) в одном из столбцов.
Я старался
SELECT * FROM table WHERE LIKE '$string%' IN (col1, col2, col3, col4, etc)
но я получаю фатальную ошибку, говорящую мне, что синтаксис неправильный около LIK.
Можно ли сделать это? и если да, то что я испортил?
Если я правильно понял, альтернативой было бы взорвать строку и сделать foreach, чтобы проверить их все по отдельности?
$array = explode(',', $string);
foreach ($array as $string)
SELECT * FROM table WHERE MATCH (col1, col2, col3, col4, etc) AGAINST $string)
Вы можете сделать подобное для нескольких столбцов, используя или условие
SELECT *
FROM table
WHERE col1 LIKE concat($string.'%' or col1 LIKE concat('%','$string','%')
OR col2 LIKE concat($string.'%' or col2 LIKE concat('%','$string','%')
OR col3 LIKE concat($string.'%' or col3 LIKE concat('%','$string','%')
OR col4 LIKE concat($string.'%' or col4 LIKE concat('%','$string','%')
OR etc.... coln LIKE concat($string.'%' or coln LIKE concat('%','$string','%')
Можете ли вы попробовать это:
SELECT * FROM table WHERE CONCAT(col1, ' , ', col2, ' , ' col3, ' , ', col4, ' , ', etc) LIKE '$string%'