sqlite3选择查询不返回单引号行
我有一个表中的一行值为“2005 /妈妈的生日派/ P9160566_1.JPG”。sqlite3选择查询不返回单引号行
我想选择使用下面的语句使用的是Mac 10.13在终端sqlite3的该行:
'select RKMaster.fileName from RKMaster where RKMaster.imagePath = "2005/Mom''s Birthday Pie/P9160566_1.JPG"'
但它返回一个空的结果。我知道该行存在,因为我可以使用应用程序数据库浏览器为SQLite使用值“妈妈的生日派/ P9160566_1.JPG”过滤imagePath列(无需转义),我可以看到我正在查找的行。
我在做什么错我的sqlite3查询?
在一个字符串中,引号必须加倍以避免它们。但是,只对那些实际分隔字符串引号是正确的:
'Mom''s'
"Mom""s"
'Mom"s'
"Mom's"
(双引号不用于字符串值,它们应该只用于表/列名,和SQLite的只为错误被接受与MySQL兼容。)
好的。但在我的情况下,我用双引号分隔字符串:“。如果我不逃避妈妈的内部单引号,那么当我在终端按回车时,命令不会执行,而是继续等待输入。我试过用'反斜杠'逃脱,但那也行不通。 –
'select“'”;'适合我。 –
用'LIKE'而不是'='工作吗? –
@CL。不,这是行不通的。但是,谢谢你的建议..如果我使用LIKE,同时也代替'通配符%,它确实有效! ''从RKMaster中选择RKMaster.fileName,其中RKMaster.imagePath类似于“2005/Mom%s Birthday Pie/P9160566_1.JPG”'' –
'SELECT hex(imagePath)FROM RKMaster WHERE ...'的输出这一排? –