我正在尝试导入产品图像,并在工作表中包含其URL。现在有2个具有相同名称的图像,但其中一个图像具有大写字母,另一幅图像具有小写字母。例如,图像名称是ABC.jpg,其他图像名称是abc.jpg。当我运行查询时,它同时返回两条记录。
这是我的查询:
$wpdb->get_results(
$wpdb->prepare(
"SELECT ID as post_id FROM $wpdb->posts WHERE post_type='attachment' AND guid='%s'", $product_img
));
我查看了论坛并尝试使用归类,但这也给我返回了相同的结果。
有人可以帮助我解决此问题吗?我正在尝试从最近两天开始对其进行修复。
谢谢。
答案 0 :(得分:1)
您可以使用BINARY
关键字来区分大小写。
$wpdb->get_results(
$wpdb->prepare(
"SELECT ID as post_id FROM $wpdb->posts WHERE post_type='attachment' AND BINARY guid='%s'", $product_img
));
请注意,这可能会影响所涉及列的索引。
显示其工作原理的示例:
mysql> select 'ABC.jpg'='abc.jpg';
+---------------------+
| 'ABC.jpg'='abc.jpg' |
+---------------------+
| 1 |
+---------------------+
1 row in set (0.00 sec)
mysql> select BINARY 'ABC.jpg'='abc.jpg';
+----------------------------+
| BINARY 'ABC.jpg'='abc.jpg' |
+----------------------------+
| 0 |
+----------------------------+
1 row in set (0.01 sec)
mysql>
另一个选择是更改所涉及列的排序规则,使其区分大小写。参见this answer。
区分大小写的文档is here。