SQL SELECT查詢給定列的行數據中的多個值和範圍。SQL SELECT查詢列中的多個值和範圍
問題描述:
服務器:MySQL的
數據庫:Customer
表:Lan
柱:Allowed VLAN
(範圍1-4096)
一個行中的列具有數據如下Allowed VLAN
:
180,181,200,250-499,550-811,826-mismatched
我需要一個SELECT
聲明WHERE
列Allowed VLAN
包括給定的數字,例如'600'
。給定號碼'600'
甚至是逗號分隔值之一或包含在「250-499」,「550-811」範圍中的任何一個範圍內,或者它只是「826-不匹配」範圍的起始數值。
SELECT * WHERE `Allowed VLAN`='600' OR `Allowed VLAN` LIKE '%600%' OR (`Allowed VLAN` BETWEEN '1-1' AND '1-4096');
我無法弄清楚如何處理WHERE子句中的數據範圍。我已經使用explode()分割函數等解決了PHP代碼的問題,但我認爲有一些SQL SELECT解決方案。
我將不勝感激的任何幫助。
我可以給你的最好的建議是修復你的數據結構。允許的值應該在一個單獨的表格中,每個範圍或單獨的值有不同的行。 –
是的,這是正確的,數據結構很奇怪。數據庫設計不是我的,來自客戶端,不能確定他們是否會改變它。 – user2409597