sql类查询语句错误

bq8i3lrv  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(379)

我是mysql数据库的新手。我必须做一个查询来过滤name\u缓存,它在我的查询中包含tny或eth0!这是我当前的查询--

SELECT data_template_data.data_source_path, data_template_data.name_cache
FROM data_local, data_template_data,host
WHERE data_local.id=data_template_data.local_data_id AND
      data_local.host_id=host.id
HAVING data_template_data.name_cache like "%TNY%eth0"
ORDER BY data_local.id;
data_source_path                               | name_cache                      
| <path_rra>/r1f-sinx03ztny_traffic_in_15846.rrd | R1F-SINX03ZTNY - Traffic - eth0 |
| <path_rra>/r1f-sinx04ztny_traffic_in_15857.rrd | R1F-SINX04ZTNY - Traffic - eth0 |
| <path_rra>/r1f-wzrx79ztny_traffic_in_16343.rrd | R1F-WZRX79ZTNY - Traffic - eth0 |

我只想用tsp短名称(wzrx79ztny中的tny)进行验证。帮我怎么查询?

x6h2sr28

x6h2sr281#

首先,不要在句子中使用逗号 FROM 条款。始终使用适当的显式 JOIN 语法。因此,您的查询(带有表别名)是:

SELECT td.data_source_path, td.name_cache
FROM data_local l JOIN
     data_template_data td 
     ON l.id = td.local_data_id
     host h
     ON l.host_id = h.id
WHERE td.name_cache like '%TNY%eth0'
ORDER BY l.id;

你没有使用 host (除非检查 l.host_id 不为空)。同样,你不需要 data_local . 所以,我认为这和你的查询是一样的:

SELECT td.data_source_path, td.name_cache
FROM data_template_data td
WHERE td.name_cache like '%TNY%eth0'
ORDER BY td.local_data_id;

对于这个查询,您无能为力。您可以在上使用索引 data_template_data(local_data_id) . 不幸的是,通配符在 like 防止使用索引。
如果要查找单词,可以使用全文索引。

xfb7svmp

xfb7svmp2#

用在哪里,没有。同样使用单引号,而不是双引号,请考虑使用联接,以便表关系更加清晰

SELECT data_template_data.data_source_path, data_template_data.name_cache 
FROM data_local
INNER JOIN data_template_data ON data_local.id=data_template_data.local_data_id
INNER JOIN host ON data_local.host_id=host.id
WHERE data_template_data.name_cache like '%TNY%eth0' 
ORDER BY data_local.id;

但我看不到您使用表主机中的任何内容,所以我认为您可以从查询中排除它

SELECT data_template_data.data_source_path, data_template_data.name_cache 
    FROM data_local
    INNER JOIN data_template_data ON data_local.id=data_template_data.local_data_id
    WHERE data_template_data.name_cache like '%TNY%eth0' 
    ORDER BY data_local.id;

相关问题