[英]PHP MySQL select data where in column array
如果我有一个名为“ invitation”的表格,如下所示:
| invitation_id | sender | recipient | | 1 | Josh | James, Hendry, Max | | 2 | Steave | James, Gerrard, Ramon | | 3 | Steave | Gerrard, Max |
如果我的名字是“ James”,如何显示收到的邀请数据?
当使用like %james%
名称时,如果出现类似的名称,则可能会得到错误的结果。 因此,使用find_in_set
可以解决您的问题。
select * from invitation where find_in_set('james',recipient) <> 0
您也可以like
使用。
select * from invitation where ',' + recipient + ',' like '%,james,%'
使用喜欢:
SELECT *
FROM invitation
WHERE recipient LIKE '%james%'
用逗号分隔存储数据(收件人)确实不是一个好习惯。
但是您仍然可以使用find_in_set
您应该使用接收者的所有值iterate
,并这样做
SELECT FIND_IN_SET('James','James,Hendry,Max')
SELECT FIND_IN_SET('James','James, Gerrard, Ramon')
这将返回0
或1
使用LIKE
可以很好地进行搜索。 但是对于这种类型的问题,我们应该使用函数FIND_IN_SET()
,其中表中的数据以逗号分隔的格式存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.