【问题标题】:SQL(ite) where clause with a colon (:) characterSQLite) 带有冒号 (:) 字符的 where 子句
【发布时间】:2016-04-25 17:35:54
【问题描述】:

我有一个包含 MAC 地址的 SQLite 表列。

如何为包含冒号“:”字符的字符串值编写 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

谢谢!

【问题讨论】:

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

标签: sql escaping


【解决方案1】:

字符串常量似乎需要单引号:

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

如果查询由单引号分隔,则将它们加倍或以某种方式转义。

【讨论】:

  • 这似乎不起作用。加倍也不转义引号。
  • 问题是我使用的包装函数不能正确处理字符串引用。这有效: SQLiteDatabase.rawQuery("SELECT * FROM PhoneStatus WHERE phoneDeviceId='00:66:4B:B2:7B:F5'");谢谢!
猜你喜欢
  • 2018-12-02
  • 2012-01-23
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 2016-03-25
  • 2012-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多