此查询需要很长时间才能生成结果。并在 php 页面中创建 500 内部服务器错误。
SELECT DISTINCT tower_mac_address AS MAC_Address, tower_survey_no AS Survey_No
FROM tower
WHERE
SUBSTR(REPLACE(tower_mac_address,':',''),7,6)
NOT IN
(SELECT DISTINCT deviceid FROM device_data
WHERE SUBSTRING(date_time,1,10)=CURRENT_DATE)
请帮忙
最佳答案
你的查询实在是太糟糕了。由于您正在使用 SUBSTR(REPLACE ..... 它不能在 tower_mac_address 列上使用索引。对于该内部查询的类似情况,您再次拥有 SUBSTR...。您可以准备具有该 SUBSTR 的新列,而不是这样做(已经替换...,并在该列上添加索引。
顺便说一句,当您计算应该用于内部 WHERE 的值时,不要使用 SUBSTRING 来获取日期时间的日期部分,而是使用 DATE()功能。
关于php - mysql 查询时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12018815/