我不知道是否可以查詢一個逗號分隔字符串的特定部分,類似如下:查詢一個逗號的特定部分分割的字符串
$results = mysql_query("SELECT * FROM table1 WHERE $pid=table1.recordA[2] ",$con);
$pid
是一個數字
和recordA
包含像
34,9008,606,,416,2
數據,其中i想要查詢的第三部分(606)
謝謝您提前
我不知道是否可以查詢一個逗號分隔字符串的特定部分,類似如下:查詢一個逗號的特定部分分割的字符串
$results = mysql_query("SELECT * FROM table1 WHERE $pid=table1.recordA[2] ",$con);
$pid
是一個數字
和recordA
包含像
34,9008,606,,416,2
數據,其中i想要查詢的第三部分(606)
謝謝您提前
在逗號分隔的列表或任何數據分離在mySQL字段之內是不屑一顧並且是所有範圍不好的做法。
與其查看mySQL字段中delimetered列表的元素,不如考慮將該字段分解到其自己的表中,然後創建一個鄰接列表以創建table1
與其相關變量之間的1:多關係。
如果您致力於此路線,最簡單的方法是使用PHP來管理它,因爲mySQL只有很少的工具(超越正則表達式/文本搜索)深入到您要提取的數據。 $results = explode(',',$query);
會根據返回的字段創建一個變量數組,允許您根據需要針對它運行儘可能多的條件檢查。
但是,考慮將此添加到「需要重新編寫/重新考慮」列表中。關係表結構將允許您直接查詢數據庫中的$pid
的值,因爲它將包含在其自己的字段中並鏈接到
如果delimetered變量列表具有不確定的長度或者變量之間的關係是平等的你最好在stackoverflow上搜索mySQL中有向無環圖的信息,以找到更好的解決方案。
不知道這個腳本的性質或預期的目的,我不能更詳細地回答。我希望這有所幫助。
我會做一個新表,它更容易處理數據。感謝您的幫助。 –
如何:
SELECT * FROM table1 WHERE FIND_IN_SET({$pid}, recordA) = 3
確保指數recordA。我喜歡下一個傢伙的正常化,但有時分解它只是比它的價值更麻煩;)
是的,它的工作原理。非常感謝你... –
$ pid是字段名稱爲什麼你改變默認值的地方 –