2

我正在尝试查询数据库以仅选择 show = 0 的记录

这是我的查询,但它为显示列返回 0 和 1

SELECT * FROM menu WHERE 'SHOW' = 0;

表结构:

Table: menu
Columns:
  id    int(2) AI PK
  url   text
  name  text
  title text
  show  int(1)

表中数据

| id |     url     | name | title | show |
------------------------------------------
| 1  | /index.php  | Home | Home  | 0    |
| 2  | /index2.php | Home | Home2 | 1    |
4

2 回答 2

6

您不需要单引号。如果您使用任何引号,请使用反引号:

SELECT * FROM menu WHERE `SHOW` = 0;

问题是这'SHOW'是一个字符串,而不是列名。当它与整数 ( 0) 进行比较时,它会被转换为整数。因为第一个字符是字母,所以转换结果为0. . . 并且条件为真。

于 2013-09-17T12:42:47.257 回答
4

你不能使用这种引号。而不是,使用:

SELECT * FROM menu WHERE `SHOW` = 0;
于 2013-09-17T12:43:08.360 回答