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数据选择。我想这是你遗漏的一些细节,问题中没有提到。