在我的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只是意味着。 –