我想找到的每一行的「身份證」在我的SQL表列「團隊」 =「11」SQL IN查詢問題
然而,「團隊」存儲格式爲:
1 ,2,3,4,5,11,20
1,3,4
11,34
我已經試過ü唱「在」查詢,但不會工作。
$query = "SELECT u_id FROM #__bl_teamcord WHERE (11 IN (teams))";
$db->setQuery($query);
$remail = $db->loadObjectList();
我想找到的每一行的「身份證」在我的SQL表列「團隊」 =「11」SQL IN查詢問題
然而,「團隊」存儲格式爲:
1 ,2,3,4,5,11,20
1,3,4
11,34
我已經試過ü唱「在」查詢,但不會工作。
$query = "SELECT u_id FROM #__bl_teamcord WHERE (11 IN (teams))";
$db->setQuery($query);
$remail = $db->loadObjectList();
您可以使用:
SELECT u_id FROM #__bl_teamcord WHERE FIND_IN_SET('11',teams)
但是,如果這些表中有大量數據和性能是至關重要的,你可能要考慮正常化您的數據到一個單獨的表,而不是使用逗號每行中的分隔列表。
謝謝你邁克!就是這樣! – user1079804 2012-01-04 00:57:45
你不能有效地做到這一點,但如果你堅持使用正則表達式。我建議參加一個每個團隊都排隊的團隊表。
請參見[SQL反模式](http://pragprog.com/book/bksqla/sql-antipatterns)。 – 2012-01-03 22:32:57
那本書的封面讓我崩潰了.. – 2012-01-03 22:39:59