异常SQL解析未报错

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:4.0.7
  • 【问题描述】:以下的异常sql提交查询之后未报错,where条件未生效:

select * from dt where date '2020-10-01' and '2020-10-28';

上面的sql遗漏了between

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

请使用 mysql client 进行下 展示。
类似 SQL 并为复现此问题。


我用navicat可以复现此问题,使用mysql命令也可以复现。

你好
如果方便 请展示下如下信息

SQL MODE

show session variables like “sql_mode”;

集群信息

select * from information_schema.CLUSTER_INFO;

执行计划

explain analyze select * from dt where date ‘2020-10-01’ and ‘2020-10-28’;

以上相关信息,以便排查此问题

查询1:

sql_mode	ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

查询2:

tidb	tidb:4000	tidb:10080	4.0.7	ed939f3f11599b5a38352c5c160c917df3ebf3eb	2020-10-24T00:39:52Z	106h23m17.382713551s
pd	pd0:2379	pd0:2379	4.0.7	8b0348f545611d5955e32fdcf3c57a3f73657d77	2020-10-24T00:39:33Z	106h23m36.382719009s
pd	pd1:2379	pd1:2379	4.0.7	8b0348f545611d5955e32fdcf3c57a3f73657d77	2020-10-24T00:39:36Z	106h23m33.382721929s
pd	pd2:2379	pd2:2379	4.0.7	8b0348f545611d5955e32fdcf3c57a3f73657d77	2020-10-24T00:39:31Z	106h23m38.38272494s
tikv	tikv0:20160	127.0.0.1:20180	4.0.7	bc0a9b3974f32cc2e08244a6eaf5284e5e5f4d76	2020-10-24T00:39:41Z	106h23m28.382726499s
tikv	tikv1:20160	127.0.0.1:20180	4.0.7	bc0a9b3974f32cc2e08244a6eaf5284e5e5f4d76	2020-10-24T00:39:40Z	106h23m29.382728194s
tikv	tikv2:20160	127.0.0.1:20180	4.0.7	bc0a9b3974f32cc2e08244a6eaf5284e5e5f4d76	2020-10-24T00:39:40Z	106h23m29.382729659s

查询3:

|TableReader_6|1.00|1|root||time:1.538528ms, loops:2, cop_task: {num: 1, max:1.4951ms, proc_keys: 1, rpc_num: 1, rpc_time: 1.477887ms, copr_cache_hit_ratio: 0.00}|data:TableFullScan_5|224 Bytes|N/A|
|---|---|---|---|---|---|---|---|---|
|└─TableFullScan_5|1.00|1|cop[tikv]|table:dt|time:0s, loops:1|keep order:false, stats:pseudo|N/A|N/A|

select * from dt where date ‘2020-10-01’ and ‘2020-10-28’;
中 date 是 保留字 需要加 反引号进行声明。
不加反引号 语义发生转变

了解,不过mysql执行这个语句就会报错。

mysql 不同的版本可能表现会不一样。测试与 mysql 5.6 表现一致。

好的,我们是在mysql8下测的

:ok_hand:

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。