我有一些文本列,其格式类似于
["some text", ]
让此列的名称为col1。
SELECT columname FROM table WHERE col1 = '["some text", ]'
我一无所获。但是
SELECT columname FROM table WHERE col1 LIKE '["some text", ]'
我收到了所需的数据。我真的不明白为什么会这样。我想使用 = ,'我读了很多, LIKE 要慢得多。而且我真的不明白为什么会这样。
UPD: 根据要求提供更多信息
CREATE TABLE IF NOT EXISTS fulldata (col1 TEXT, data TEXT);
插入我通过QSqlQuery做准备
insertData.prepare("INSERT INTO fulldata(col1 , data) "
" VALUES(:col1, :data);");
insertData.bindValue(":col1", currentFilter);
currentFilter [“2014-01-14 00:00:00”,2]
选择我也使用QSqlQuery并准备
selectQuery.prepare("SELECT data FROM fulldata WHERE col1 = :col1 ");
selectQuery.bindValue(":col1 ", strFilter);
strFilter也是 [“2014-01-14 00:00:00”,2]
此外,我从Qt 5.1示例中选择“Qt SQL Browser”,结果与代码相同。
我的 SQLite版本= 3.7.17
答案 0 :(得分:0)
两者都返回了正确的结果。
点击此处:http://sqlfiddle.com/#!5/4c033/4
我认为你错过了其他一些东西,只是你在问题中没有提到的一些细节。
是的,LIKE
确实要慢得多。
修改强>
在我的本地机器上尝试过,仍然没有问题。