SQL InnoDB 为一个 LIKE 值检查多列
SQL InnoDB Checking multiple columns for one LIKE value
我正在尝试在其中一列中查找字符串的一部分(单词、单词、单词、单词)。
我试过了
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%'
我正在尝试在其中一列中查找字符串的一部分(单词、单词、单词、单词)。
我试过了
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%'