使用SQLITE3选择引用的列条目:忽略WHERE子句

时间:2015-02-01 15:29:41

标签: sqlite where

我有以下sqlite3表:

CREATE TABLE bilder (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL);

数据:

__id__
8
9
10
11

CREATE TABLE combos (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL);

数据:

__id__
1
2
3
4

CREATE TABLE combo_bild (combo_id int not null references combos(id), bild_id int not null references bilder(id), display_nummer int, unique (combo_id, bild_id));

数据:

__combo_id__|__bild_id__|__display_nummer__
1            8           1
1            9           2
2            8           1
2            10          2

当我处理以下查询时:

SELECT combo_id, bild_id FROM combo_bild WHERE combo_id > 1;

我得到(正如预期的那样):

__combo_id__|__bild_id__|__display_nummer__
2            8           1
2            10          2

但是,当我使用以下查询时:

SELECT combo_id, bild_id FROM combo_bild WHERE bild_id > 9;

我得到了

__combo_id__|__bild_id__|__display_nummer__

1            8           1
1            9           2
2            8           1
2            10          2

为什么忽略WHERE子句?感谢你看,Dani

1 个答案:

答案 0 :(得分:0)

不会忽略WHERE子句。 bild_id列中的所有值都大于9,因为它们是字符串,而不是数字。

检查导入数据的方式。

要修复表格,请执行以下操作:

UPDATE combo_bild SET bild_id = CAST(bild_id AS INT);