1
我有一個代碼,應該從表中選擇項目,其中字段color_base1和color_base2類似於特定的顏色。PDO查詢返回比預期使用LIKE CONCAT更多的值
但是,目前我的代碼只是返回的所有字段在我的表,那種無視我申請的,如:
$result3 = $con -> prepare("SELECT * FROM item_descr WHERE (color_base1 LIKE CONCAT ('%', ? , '%') OR color_base2 LIKE CONCAT ('%', ? , '%')) AND id_item != $itemId LIMIT 4");
$result3 -> execute(array("$color_base1", "$color_base2"));
$row3 = $result3->fetch();
會有人對SQL如何建立任何輸入和我應該怎麼建立它?
您選擇其中color_base1包含字符串$ color_base1 PLUS(工會,或...),其中color_base2包含stirng $ color_base2所有記錄的所有記錄。 假設存儲在color_base1/2中的顏色是RGB十六進制顏色代碼(DC0000用於深紅色),如果搜索WHERE color_base1 LIKE「%C0%」,它將與DC0000匹配記錄,但是如果搜索LIKE「%D0C% 「它不會匹配。這是你的問題嗎?否則,我沒有得到你的問題... –
我想獲取其中color_base1類似於$ color_base1的記錄,或者color_base2類似於$ color_base2。我使用%,因爲我的顏色是實際名稱(綠色,紅色),有時我有「淺綠色」,所以「淺綠色」應該類似於「綠色」 – samyb8
好的,但是您的查詢出了什麼問題?除了一些PHP錯誤,你的查詢應該完成這項工作。除非你想要一些與OR不同的東西:你是否需要XOR(請參閱:http://en.wikipedia.org/wiki/Exclusive_or)? –