PHP MySQL在列数组中选择数据

时间:2015-07-09 03:48:01

标签: php mysql arrays where

如果我有一张名为“邀请函”的表格。像这样:

| invitation_id | sender | recipient             |
| 1             | Josh   | James, Hendry, Max    |
| 2             | Steave | James, Gerrard, Ramon |
| 3             | Steave | Gerrard, Max          |

如果我的名字是" James"?

,如何显示我收到的邀请数据?

4 个答案:

答案 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')

将返回01

答案 3 :(得分:0)

使用LIKE将有助于搜索目的。 但我们应该使用函数FIND_IN_SET()来解决这类问题,其中表中的数据以逗号分隔格式存在。