2016-04-25 115 views
0

我有一个保存MAC地址的SQLite表列。SQL(ite)where子句用冒号(:)字符

如何为包含冒号“:”字符的字符串值编写SQL where子句?用引号字符围住它不起作用。

到目前为止,我已经收到此错误:

android.database.sqlite.SQLiteException: near ":66": syntax error (code 1): , while compiling: SELECT * FROM PhoneStatus WHERE phoneDeviceId=00:66:4B:B2:7B:F5 

谢谢!

+0

搜索您的dbms的转义字符。此外,phoneDeviceId是char类型,用单引号括起来。 '00:66:4B:B2:7B:F5' –

回答

0

你似乎需要使用单引号的字符串常量:

SELECT * 
FROM PhoneStatus 
WHERE phoneDeviceId = '00:66:4B:B2:7B:F5' 

如果查询单引号分隔,然后双击他们,或以某种方式逃避它们。

+0

这似乎不起作用。既不加倍也不逃避报价。 –

+0

问题是我使用的包装函数没有正确处理字符串引用。 这工作: SQLiteDatabase.rawQuery(“SELECT * FROM PhoneStatus WHERE phoneDeviceId = '00:66:4B:B2:7B:F5'”); 谢谢! –