您好我有一张桌子
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个字,那会怎么样?
答案 0 :(得分:3)
MySQL有一个简洁的函数来搜索定义为名为FIND_IN_SET
的字符串的列表中的字符串。不幸的是,它只适用于逗号分隔的值,但可以解决一些REPLACE
欺骗:
SELECT *
FROM emp
WHERE FIND_IN_SET(?, REPLACE (address, ' ', ',')) > 0