【问题标题】:android : sqlite using parameter binding for LIKEandroid : sqlite 使用 LIKE 的参数绑定
【发布时间】:2017-07-24 15:28:38
【问题描述】:

我的查询类似于 COL1 = ?和 COL2 喜欢吗? 或 COL3 喜欢?或 COL4 喜欢? ..

我将选择参数的值传递为 {"col1value","searchstring", "搜索字符串","搜索字符串"}

我正在比较 col2、3 和 4 是否具有相同的字符串。 那么我可以使用绑定到类似的东西进行优化吗 COL1 = ?和 COL2 像 ?2 OR COL3 LIKE ?2 或 COL4 LIKE ?2

这样我就不必在参数中重复字符串 {"col1value","searchstring"}

这可能吗?如果可以,正确的语法是什么。

【问题讨论】:

标签: android sqlite binding


【解决方案1】:

many ways of specifying parameters。要(重新)使用特定参数编号,请将编号附加到?

COL1 = ?1 AND (COL2 LIKE ?2 OR COL3 LIKE ?2 OR COL4 LIKE ?2)

(AND 的优先级高于 OR。)

【讨论】:

    【解决方案2】:

    试试这个 SELECT * FROM table_name WHERE searchstring IN(COL2, COL3, COL4);

    在安卓中选择:

    String select = "? IN (COL2, COL3, COL4)"
    

    选择参数:

    String[] args = new String[] {"searchstring"};
    

    【讨论】:

      猜你喜欢
      • 2021-11-15
      • 2014-12-20
      • 2014-04-27
      • 1970-01-01
      • 2021-11-20
      • 2011-05-18
      • 2015-08-11
      • 2019-11-22
      • 1970-01-01
      相关资源
      最近更新 更多