我的查询过去常常与WHERE some_int_field = some_other_int_field
中的=一起工作。当我这样做时,我得到0结果。但是,如果我做WHERE some_int_field LIKE some_other_int_field
,我会得到我的结果。我已经检查了隐藏字符/空格的字段长度,并且字段的长度是正确的。它们都是整数字段。思考?下面有两个表结构:
CREATE TABLE "languages"(
"language_id" Integer,
"name" Text,
"english" Text,
"spanish" Text,
"portuguese" Text,
"french" Text );
-- Create index languagesIdx
CREATE INDEX "languagesIdx" ON "languages"( "name" );
BEGIN;
-------------
CREATE TABLE "drop_downs"(
"mode_data" Integer,
"text_index" Integer,
"language_id" Integer );
-- Create index drop_downsIdx
CREATE INDEX "drop_downsIdx" ON "drop_downs"( "mode_data", "language_id" );
BEGIN;
答案 0 :(得分:0)
SQLite使用dynamic typing并不关心字段的声明类型。
你的字段中有字符串。
要检查哪些行包含字符串,请使用以下内容:
SELECT * FROM drop_downs WHERE typeof(mode_data) = 'text'
要将列中的所有值转换为数字,请使用以下内容:
UPDATE drop_downs SET mode_data = CAST(mode_data AS integer)