繁体   English   中英

PHP MySQL选择列数组中的数据

[英]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')

这将返回01

使用LIKE可以很好地进行搜索。 但是对于这种类型的问题,我们应该使用函数FIND_IN_SET() ,其中表中的数据以逗号分隔的格式存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM