mysql搜索查询哪个更好


mysql search query which one better

使用MySQL进行搜索时,哪个查询更好?

SELECT id from table where strcol = 1

SELECT id from table where strcol = '1'

其中strcol是varchar(1)字段

'1'是更好的选择,因为您的strcol具有varchar类型。

正如其他人已经说过的,您应该使用与列相同的数据类型。因此,如果您有一个varchar,请使用引号从中进行选择,否则将使用mysql的自动类型转换。对于相对较少的数据量,这种类型转换可能不是太大的问题,但在规模上肯定会是一个问题,因为索引不会给您带来任何优势。

要了解mysql中的自动类型转换,请参阅此处。

这里对你来说有趣的部分可能是:

对于字符串列与数字的比较,MySQL不能使用索引,以便快速查找值。如果str_col是索引字符串列,执行在以下语句中查找。。。

根据经验,我认为在执行查询时应该坚持使用数据类型,因此我建议:

SELECT id from table where strcol = '1'

纯粹是因为数据类型是varchar

由于strcol的类型为varchar,我建议:

SELECT id from table where strcol = '1'

总是用引号包装字符串

因为它是一个varchar,所以应该总是用'标记将其括起来——你现在可能只在其中使用数字(如果你使用数字,这两种方法都可以),但如果一个字母最终出现在该列中,MySQL将无法将其转换为int,并引发错误。

SInce strcol属于VARCHAR()类型,请使用以下内容:

SELECT id from table where strcol = '1'

只有当strcol数值值(int、flot、number…)

时,另一个选项才有效