我在表格中有一個名爲category_id
的數字字段。我想要做這樣的事情。嵌套表的最佳查詢語法?
$ids=implode(',',$id_array);
$sql="SELECT * FROM myTbl WHERE IN(category_id,'$ids')";
應輸出類似:
SELECT * FROM myTbl WHERE IN(category_id,'1,2,3,4,5,6');
這是可能的,我使用這個正確的語法?有一個更好的方法嗎?
我在表格中有一個名爲category_id
的數字字段。我想要做這樣的事情。嵌套表的最佳查詢語法?
$ids=implode(',',$id_array);
$sql="SELECT * FROM myTbl WHERE IN(category_id,'$ids')";
應輸出類似:
SELECT * FROM myTbl WHERE IN(category_id,'1,2,3,4,5,6');
這是可能的,我使用這個正確的語法?有一個更好的方法嗎?
從哪裏獲得id數組?如果從數據庫是你應該考慮做它都在那裏:
SELECT * FROM myTbl WHERE c_id IN (SELECT c_id FROM yourTable WHERE ...);
差不多,但不太 - 這裏是一個方式,它可以工作
$ids="'".implode("','",$id_array)."'";
$sql="SELECT * FROM myTbl WHERE category_id IN($ids)";
應輸出類似:
SELECT * FROM myTbl WHERE category_id IN('1', '2', '3', '4', '5', '6');
注意,由於該領域是數字,引號是不必要的,但這是建立引用字符串列表的有用代碼成語。你的情況,你可以簡化爲
$ids=implode(',',$id_array);
(我假設數組不爲空,則數組元素santized等爲清楚!)
是,語法爲MySQL是這樣的:
SELECT * FROM myTbl WHERE category_id IN(1,2,3,4,5,6);
(因爲值是整數,他們不需要引號如果他們是字符串,他們每個人都需要封閉在自己的報價 - CATEGORY_ID IN(「A」,「b」)
CATEGORY_ID是數字領域,沒有在IN – ninesided 2009-01-10 22:36:01
所需的報價是啊,錯過了他會明確地表示它。已修改。 – 2009-01-10 22:39:40