我有以下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
答案 0 :(得分:0)
不会忽略WHERE子句。
bild_id
列中的所有值都大于9
,因为它们是字符串,而不是数字。
检查导入数据的方式。
要修复表格,请执行以下操作:
UPDATE combo_bild SET bild_id = CAST(bild_id AS INT);