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

Wordpress 使用URL搜索附件ID(区分大小写),wordpress,case-sensitive,Wordpress,Case Sensitive,我正在尝试导入产品图片,并在工作表中有它们的URL。现在有两个图像具有相同的名称,但一个具有大写字母,另一个具有小写字母。例如,图像名称为ABC.jpg,其他图像名称为ABC.jpg。当我运行查询时,它将返回两条记录 我的问题是: $wpdb->get_results( $wpdb->prepare( "SELECT ID as post_id FROM $wpdb->posts WHERE post_type='attachment' AN

我正在尝试导入产品图片,并在工作表中有它们的URL。现在有两个图像具有相同的名称,但一个具有大写字母,另一个具有小写字母。例如,图像名称为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 
  ));
我尝试使用排序规则,但也返回相同的结果


如何修复此问题?

您可以使用
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> 
另一个选项是更改相关列的排序规则,使其区分大小写。看


区分大小写文档。

您确定这些是不同的图像吗?使用二进制文件可以工作。你救了我一天。非常感谢:)