【问题标题】:How can we use AND & OR operators be used along with simple join?我们如何将 AND & OR 运算符与简单连接一起使用?
【发布时间】:2018-10-30 13:06:18
【问题描述】:

我的数据库中有两个表 CustomerAddressesArea

客户地址的列是 -

  • id(主键),
  • areaId(引用表Areas的外键),
  • 客户 ID,
  • addressLine1,
  • addressLine2,
  • 地标,
  • 密码,
  • 首选,

区域的列是 -

  • 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%'
  • 你需要通配符:LIKE %d%

标签: mysql sql join select logical-operators


【解决方案1】:

这里的问题不是连接,而是您在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 --------------------^-^

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 2021-12-17
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多