CREATE TABLE [dbo].[receive_scans] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[barcode] VARCHAR (50) NOT NULL,
[record_created] DATETIME DEFAULT (getdate()) NULL,
[cart_id] VARCHAR (15) NULL,
列a为VARCHAR类型,我已经在其上创建了索引。第一个使用索引,但是第二个不使用。有任何线索吗?
我怀疑MySQL可能将CHAR和VARCHAR作为两种不同的类型,因此我将a列更改为CHAR,并且索引也无效。
答案 0 :(得分:0)
听起来像CHARACTER SET
或COLLATION
问题。请提供:
SHOW VARIABLES LIKE 'char%';
how you are connecting to the database
SHOW CREATE TABLE table1;
答案可能是更改CONVERT
:
CONVERT(1, CHAR charset utf8)
什么是 real 查询;可能还有其他更适合您的情况的方法。使用CONVERT
是一种浪费;让我们开始吧。
要查看转化,请执行
EXPLAIN FORMAT=JSON SELECT ...