Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择某些文本包含方括号的位置_Sql_Database_Sqlite - Fatal编程技术网

Sql 选择某些文本包含方括号的位置

Sql 选择某些文本包含方括号的位置,sql,database,sqlite,Sql,Database,Sqlite,我有一些文本列,格式如下 ["some text", ] 让此列的名称为col1。做 SELECT columname FROM table WHERE col1 = '["some text", ]' 我什么也没收到。但是 SELECT columname FROM table WHERE col1 LIKE '["some text", ]' 我收到所需的数据。我真的不明白为什么会这样。我想用=,'因为我读了很多东西,喜欢的东西要慢得多。而且我真的不明白为什么会这样 UPD: 按要求

我有一些文本列,格式如下

 ["some text", ]
让此列的名称为col1。做

SELECT columname FROM table WHERE col1 = '["some text", ]'
我什么也没收到。但是

SELECT columname FROM table WHERE col1 LIKE '["some text", ]'
我收到所需的数据。我真的不明白为什么会这样。我想用=,'因为我读了很多东西,喜欢的东西要慢得多。而且我真的不明白为什么会这样

UPD: 按要求提供更多信息

CREATE TABLE IF NOT EXISTS fulldata (col1 TEXT, data TEXT);
使用prepare通过QSqlQuery插入I do

insertData.prepare("INSERT INTO fulldata(col1 , data) "
                      " VALUES(:col1, :data);");
insertData.bindValue(":col1", currentFilter);
  selectQuery.prepare("SELECT data FROM fulldata WHERE col1 = :col1 ");
  selectQuery.bindValue(":col1 ", strFilter);
currentFilter是[2014-01-14 00:00:00,2]

使用QSqlQuery和prepare选择我也要做的事情

insertData.prepare("INSERT INTO fulldata(col1 , data) "
                      " VALUES(:col1, :data);");
insertData.bindValue(":col1", currentFilter);
  selectQuery.prepare("SELECT data FROM fulldata WHERE col1 = :col1 ");
  selectQuery.bindValue(":col1 ", strFilter);
strFilter也是[2014-01-14 00:00:00,2]

另外,我确实从Qt5.1示例中的QtSQL浏览器中进行了选择,结果与代码中的结果相同


我的SQLite版本=3.7.17

都返回了正确的结果

请点击此处:

我想你还遗漏了一些其他的东西,只是一些你在问题中没有提到的细节

是的,LIKE确实慢多了

编辑:

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


奇怪的是,你得到了不同的结果。然而,在没有通配符的情况下使用LIKE没有任何意义,例如%符号,但是如果你这样做,速度应该是相似的,检查:bindvalue中的任何前导/尾随空格或类似空格都会使二进制排序符不匹配吗?@laalto不,我仔细检查了一下……当然,我真正的表是以其他方式调用的。事实上,在你的链接上,这两个变体都可以工作。我使用SQLite 3,在这里我得到了question@user3136871真奇怪。答案已更新。也许你应该更新你的问题与确切的陈述,你有1表的创建;2数据插入;3数据选择。我想这是你遗漏的一些细节,问题中没有提到。