MySQL String automatisch in Zahl umwandeln/konvertieren?
P粉336536706
P粉336536706 2023-10-24 08:36:29
0
2
670

Konvertiert MySQL Zeichenfolgen automatisch in numerische Werte?

Wie funktioniert diese Konvertierung?

  • '1234'=1234 ?
  • '1abc' = 1 ?
  • 'text' = 1 ?

Wie wird diese Abfrage interpretiert, wenn units.id vom Typ bigint ist?

SELECT table.* 
FROM table 
WHERE id='text'

P粉336536706
P粉336536706

Antworte allen(2)
P粉099145710

默认情况下,MySQL 对 1 和“1”的处理方式相同,但是您可以通过将 MySQL 行为设置为严格模式来更改它。

set @@GLOBAL.sql_mode  = "STRICT_ALL_TABLES";
set @@SESSION.sql_mode = "STRICT_ALL_TABLES";

或者您可以在 sql_mode = '' 中将 my.cnf 文件中的这些变量设置为永久变量。这样,如果使用了不正确的类型,MySQL 将抛出错误。 阅读 http://dev.mysql.com/doc/ refman/5.0/en/server-sql-mode.html 了解更多详细信息

P粉330232096

前三个问题的答案是:是、是、否。

当字符串'text'转换为数字时,它变成值0

描述类型转换的文档位于此处 .

对于您的查询:

SELECT table.* 
FROM table 
WHERE id='text';

该规则是通过文档摘录捕获的:

换句话说,这实际上相当于:

WHERE id = 0.0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage