我的数据库中有两个表 CustomerAddresses 和 Area。
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/