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

Selecting referenced column entries with SQLITE3: Ignored WHERE-clause

我有以下 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

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

检查您导入数据的方式。

要修复 table,执行如下操作:

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