我有一些文本列,有像选取一些文字,包含了方括号
["some text", ]
格式让此列名COL1。并且做
SELECT columname FROM table WHERE col1 = '["some text", ]'
我什么都没收到。但与
SELECT columname FROM table WHERE col1 LIKE '["some text", ]'
我收到需要的数据。我真的不明白为什么会这样。我想用=,'cos我读了很多,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年1月14日00:00:00” ,2]
选择我也使用QSqlQuery与准备
selectQuery.prepare("SELECT data FROM fulldata WHERE col1 = :col1 ");
selectQuery.bindValue(":col1 ", strFilter);
strFilter的也是[ “2014年1月14日00:00:00”,2]
此外,我从 “Qt的SQL浏览器” 从Qt的选择5.1示例中,相同的结果来自代码。
我SQLite的版本= 3.7.17
很奇怪你会得到不同的结果。然而,没有通配符(即%符号)使用LIKE确实没有意义,但如果你的速度应该类似,请检查:http://stackoverflow.com/questions/404226/sql-like-with-no- wildcards-the-same-as –
任何前导/尾随空白或类似的绑定值会使二进制collator不匹配? – laalto
@laalto不,我再次检查.. – user3136871