mysql - 将字符串与多个表mysql中的同一列进行比较

标签 mysql

我有一个引用 jpg 文件的字符串,比方说“34563.jpg”。 现在我想知道这个文件是否分配给这 3 个表中的任何记录。

所有 3 个表具有相同的结构

id,name,img

我的查询仅对第一个表返回 true:

SELECT clients_tbl.img, pets_tbl.img, places_tbl.img
FROM clients_tbl, pets_tbl, places_tbl
WHERE (clients_tbl.img = '34563.jpg')
OR (pets_tbl.img = '34563.jpg')
OR (places_tbl.img = '34563.jpg');

我需要此查询的 bool 值响应,无论是否已找到。

谢谢

最佳答案

您需要UNION:

SELECT COUNT(t.*) when_not_found_0
FROM (
    SELECT img
    FROM clients_tbl
    WHERE clients_tbl.img = '34563.jpg'
  UNION
    SELECT img
    FROM pets_tbl
    WHERE pets_tbl.img = '34563.jpg'
  UNION
    SELECT img
    FROM places_tbl
    WHERE places_tbl.img = '34563.jpg'
) t

关于mysql - 将字符串与多个表mysql中的同一列进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33486802/

相关文章:

MySQL - 最后按完全匹配排序

python - MySQLdb UPDATE 挂起

mysql - 什么是Sql查询来知道mysql中数据库是否已存在

javascript - 使用 PHP 创建一个新的 PHP 文件

mysql - 单选按钮的 mysql 数据类型是什么?

MySQL:使用 LEFT JOIN 选择

mysql - Spring + hibernate + postgresql 的设置

mysql - 选择不同表中没有特定值的所有行

mysql - 多个字段的最常见值

php - Codeigniter:仅显示最后日期条目