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)? –