检查单词是否出现带空格分隔单词的列

时间:2014-01-17 13:12:08

标签: mysql sql mysqli

您好我有一张桌子

EMP TABLE

+--+----+--------------+
|ID|Name|Address       |
+--+----+--------------+
|1 |Jack|Street  Road  |
+--+----+--------------+
|2 |Jill|Park Side Lane|
+--+----+--------------+

我想在每个地址上的Where子句怎么可能?

我正在使用Select Query Like

SELECT *
FROM emp 
WHERE
SUBSTRING_INDEX(address, " " ,1 ) = ?
OR
SUBSTRING_INDEX(SUBSTRING_INDEX(address, " " ,2 ) , " " , -1) = ?
OR
SUBSTRING_INDEX(SUBSTRING_INDEX(address, " " ,3 ) , " " , -1) = ?;

但如果我的地址字段中有3个字,那会怎么样?

1 个答案:

答案 0 :(得分:3)

MySQL有一个简洁的函数来搜索定义为名为FIND_IN_SET的字符串的列表中的字符串。不幸的是,它只适用于逗号分隔的值,但可以解决一些REPLACE欺骗:

SELECT * 
FROM   emp 
WHERE  FIND_IN_SET(?, REPLACE (address, ' ', ',')) > 0