SELECT DISTINCT u.id AS userId,u.type AS userType
FROM User AS u,Personal AS p,Company AS c
WHERE (p.realName LIKE '%adf%' AND u.type=1 AND u.id=p.userId)
OR (c.name LIKE '%grge%' AND u.id=c.userId)
LIMIT 0 , 10000
答案 0 :(得分:0)
您可以将查询编写为:
SELECT DISTINCT u.id AS userId,u.type AS userType
FROM User AS u inner join Personal AS p on u.id=p.userId
inner join Company AS c on u.id=c.userId
where p.realName LIKE '%adf%' or c.name LIKE '%grge%'
LIMIT 0 , 10000
尽量避免使用逗号分隔的JOINS
答案 1 :(得分:0)
您似乎正在进行非常可怕的交叉连接,然后有选择地缩小WHERE子句中的记录。
最好做2个查询并将结果合并在一起。每个查询都可以进行一次正确的连接它仍然需要使用LIKE访问一个列,并使用一个不会很快的前导外卡(它不能使用索引)。
id=123
location='/data/$id/app'
location=${location/\$id/$id}
echo $location # /data/123/app