我有一个MySQL php查询,当字符串用作条件时将返回一个值,但在使用整数时返回false。 这很有效,
SELECT field FROM table WHERE name='john';
这不是
SELECT field FROM table WHERE index='1';
这是一个有问题的行的例子
|index(int)|Name(varchar)|Field(varchar)|
| 1 | john | data |
查询整数是否存在固有问题?有人有什么想法吗?
答案 0 :(得分:0)
在您的情况下,表名中的“索引”将被视为保留关键字
在MySQL中,存在很多特殊字符或保留字。每次使用其中一个时,都必须使用反引号。
反引号用于表和列标识符,但仅在标识符为MySQL reserved keyword时,或者当标识符包含空格字符或超出有限集的字符时才需要(见下文)。通常建议使用尽可能避免使用保留关键字作为列或表标识符,避免引用问题。
According to MySQL documentation,您不需要使用以下字符集引用(反引号)标识符:
ASCII:
[0-9,a-z,A-Z$_]
(基本拉丁字母,数字0-9,美元,下划线)
您可以使用超出该组的字符作为表或列标识符,例如包括空格,但是必须引用(反引号)它们。
在你的情况下使用`index`(反引号!)而不是索引应该工作