1.反引号用于表和列标识符,但仅在标识符是MySQL保留关键字时,或者当标识符包含空格字符或超出有限集的字符时才需要。通常建议避免使用保留关键字尽可能作为列或表标识符,避免引用问题。
单引号应该用于VALUES()列表中的 字符串 值。 MySQL也支持双引号用于字符串值,但单引号被其他RDBMS更广泛地接受,因此使用单引号而不是双引号是一个好习惯。
2. mysql where 条件中加引号和不加引号
CREATE TABLE `foo` (
`key` VARCHAR(10) NOT NULL,
`time` INT(11) NOT NULL,
PRIMARY KEY (`key`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
查找时:
SELECT *
FROM `foo`
WHERE `key` =1293322797
和
SELECT *
FROM `foo`
WHERE `key` ='1293322797'
相比性能差别很大。原因是:
不使用单引号没有用上主索引,并进行了全表扫描,使用单引号就能使用上索引了。
在mysql中单引号是代表字符不需要编辑了,如果不是字符还需要mysql进行一个类型判断操作所以自然就慢了。
原本是VARCHAR类型,不加引号,需要加多一个转换操作,将INT转换VARCHAR。