使用 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);
我有以下 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);