查找特定的角色,我有一個表像這樣SQL表
d_id | d_name | d_desc | sid
1 |flu | .... |4,13,19
其中SID是VARCHAR。我想要做的是當輸入4或13或19時,它會顯示流感。但是,我的查詢只適用於用戶選擇所有這些值。這裏是我的查詢
SELECT * FROM diseases where sid LIKE '%sid1++%'
從上面的查詢中,我使用PHP並使用for循環將sid值放入LIKE值中。所以我只是把sid ++簡單化。我的查詢只適用於所有值都存在的情況。如果讓用戶選擇4和19這將是'%4,19%',那麼它什麼都不顯示。謝謝大家。
只是規範化你的模式 – Strawberry
你可以用正則表達式做到這一點,但這通常是一個壞主意。數據庫字段不應包含多個值。參見[第一範式](https://en.wikipedia.org/wiki/First_normal_form)。 –
從長遠來看,最好創建一個新的表,每個'(d_id,sid)'組合都有一行。它也可以通過一個或所有'sid's輕鬆查詢。 –