使用URL(区分大小写)搜索附件ID

问题描述 投票:1回答:1

我正在尝试导入产品图片,并在工作表中添加其网址。现在,有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 
  ));

我尝试使用归类,但这也返回了相同的结果。

如何解决此问题?

wordpress case-sensitive
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.