在我的MySQL表中,我有一个名为member_id
的列。这列存储的值是这样的:需要帮助mysql查询
1,2,3,4,5
我需要检查,通过使用
SELECT *
FROM member
WHERE 5 IN member_id
它都不尽如人意。请帮我写一个SQL查询,它会找到合适的结果。
在我的MySQL表中,我有一个名为member_id
的列。这列存储的值是这样的:需要帮助mysql查询
1,2,3,4,5
我需要检查,通过使用
SELECT *
FROM member
WHERE 5 IN member_id
它都不尽如人意。请帮我写一个SQL查询,它会找到合适的结果。
使用此查询:
SELECT *
FROM mytable
WHERE FIND_IN_SET(5, member_id)
我不是超级熟悉MySQL ,但是你不想做类似'WHERE FIND_IN_SET(5,member_id)> 0'吗?也许MySQL会将'> 0'的所有内容评估为真实,但这并不是明确要求的。 –
真的吗? 我确定他只是需要SELECT * FROM mytable WHERE member_id = 5 ... 但是再次,我可能错了,因为这个问题很不清楚...... – MrSoundless
+1最好的方式在MySQL – RedFilter
Quassnoi的方法适用于MySQL的,但对于一个便携式的跨平台技术,你可以这样做:
select *
from member
where member_id = '5'
or member_id like '5,%'
or member_id like '%,5,%'
or member_id like '%,5'
这是假设有数据中没有额外的空白。
如果我有'55,1'&'8,5,5, 6'作为输入我会在执行查询后都有两行? –
@FahimParkar号您认为哪一个条款可以匹配第一个案例? – RedFilter
不是'member_id like'5,%''不会考虑'55,1'? –
发布一些你试过的代码并试着更好地解释你想要达到的效果 –
你应该在这里提供更具体的信息。请提供表格模式和确切的查询,以及“不太好”的更具体定义。 –
我试图整理他的帖子,但它目前正在等待同行评议,我也投票给他,因为downvoting只是意味着。 –