匹配mysql列中的字符串

时间:2018-04-25 07:26:02

标签: php mysql

我想匹配mysql列中的字符串

$string = "XYZ London, UK";

以下是数据库结构

id   city        state      street      Address
1    London      BBA        WER         UK
2    California  ZZZ        787         USA
3    London      XYZ        WER         UK

我想要的是当我查找字符串时我应该得到id 1和3的结果。

2 个答案:

答案 0 :(得分:2)

我认为LIKEOR可以帮助您

SELECT *
FROM test
WHERE 'XYZ London, UK' LIKE CONCAT('%',city,'%')
   OR 'XYZ London, UK' LIKE CONCAT('%',state,'%')
   OR 'XYZ London, UK' LIKE CONCAT('%',street,'%')
   OR 'XYZ London, UK' LIKE CONCAT('%',Address,'%')

或者您也可以使用INSTROR

SELECT *
FROM test
WHERE INSTR('XYZ London, UK',city)>0
   OR INSTR('XYZ London, UK',state)>0
   OR INSTR('XYZ London, UK',street)>0
   OR INSTR('XYZ London, UK',Address)>0;

SQL小提琴 - http://www.sqlfiddle.com/#!9/f3c64d/5

答案 1 :(得分:0)

strpos - 查找字符串

中第一次出现子字符串的位置

返回针存在于相对于haystack字符串开头的位置(与offset无关)。另请注意,字符串位置从0开始,而不是1。

$string= "XYZ London, UK";
if (strpos($db, $string) !== false) {
    echo 'true';
}

可以找到文档here

编辑:SQl查询:

select * from table where column like  '%string%'