SELECT WHERE一些文本,包含方括号

时间:2014-01-14 22:49:49

标签: sql database sqlite

我有一些文本列,其格式类似于

 ["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

1 个答案:

答案 0 :(得分:0)

两者都返回了正确的结果。

点击此处:http://sqlfiddle.com/#!5/4c033/4

我认为你错过了其他一些东西,只是你在问题中没有提到的一些细节。

是的,LIKE确实要慢得多。

修改

在我的本地机器上尝试过,仍然没有问题。

enter image description here