mysql - 我们如何将 AND & OR 运算符与简单连接一起使用?

标签 mysql sql join select logical-operators

我的数据库中有两个表 CustomerAddressesArea

CustomerAddresses 列是 -

  • id(主键),
  • areaId(引用表区域的外键),
  • 客户编号,
  • addressLine1,
  • 地址行2,
  • 地标,
  • 密码,
  • 首选,

区域列是 -

  • areaId(主键),
  • 姓名,

 SELECT * FROM CustomerAddresses CA, Areas A 
 WHERE CA.areaId = A.areaId
 AND 
 CA.customerId = 1 
 AND 
 ( CA.addressLine1 like 'd'
 OR 
   CA.addressLine2 like 'd' 
 OR 
   CA.landmark like 'd' 
 OR 
   CONVERT(pincode, CHAR) like 'd' 
 OR 
   A.name like 'd' );

我想从 CustomerAddresses 中获取一个客户的所有地址,然后搜索这些记录中是否存在字符“d”。

查询返回空集。

最佳答案

这里的问题不是连接,而是您在 like 调用中缺少 d 前后的通配符:

CA.addressLine1        like '%d%' OR 
CA.addressLine2        like '%d%' OR 
CA.landmark            like '%d%' OR
CONVERT(pincode, CHAR) like '%d%' OR
A.name                 like '%d%' 
-- These --------------------^-^

关于mysql - 我们如何将 AND & OR 运算符与简单连接一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53064988/

相关文章:

mysql - 需要连接 2 个表,但 MySQL 中另一个表中的某些行除外

mysql - 如何在MySQL中进行多连接查询?

php - Apache:本地网络上的 Wordpress

php - 从mysql数据库中检索图像到android

php - 忽略重复记录但将它们置顶

php - 与之前的 SELECT 语句相比,从 MySQL 数据库中选择剩余的项目

mysql - 查询最近 30 天内不存在的同一个表的记录

Sql IN 子句会降低性能

sql - 具有许多 (0,n) 关系的数据库建模

php - MySQL - 在一个连接表中计算不同条件下的不同字段