如果我有一张名为“邀请函”的表格。像这样:
| invitation_id | sender | recipient | | 1 | Josh | James, Hendry, Max | | 2 | Steave | James, Gerrard, Ramon | | 3 | Steave | Gerrard, Max |
如果我的名字是" James"?
,如何显示我收到的邀请数据?答案 0 :(得分:2)
使用like %james%
时,如果出现类似名称,可能会得到错误的结果。因此,使用find_in_set
可以解决您的问题。
select * from invitation where find_in_set('james',recipient) <> 0
您也可以这样使用like
。
select * from invitation where ',' + recipient + ',' like '%,james,%'
答案 1 :(得分:1)
使用LIKE:
SELECT *
FROM invitation
WHERE recipient LIKE '%james%'
答案 2 :(得分:1)
以逗号分隔存储数据(收件人)实际上不是一个好习惯。
但您仍然可以使用find_in_set
你应该iterate
与你一起收件人的所有价值,并且这样做
SELECT FIND_IN_SET('James','James,Hendry,Max')
SELECT FIND_IN_SET('James','James, Gerrard, Ramon')
将返回0
或1
答案 3 :(得分:0)
使用LIKE
将有助于搜索目的。
但我们应该使用函数FIND_IN_SET()
来解决这类问题,其中表中的数据以逗号分隔格式存在。