在android中使用UNION ALL时如何对特定语句使用order by
Posted
技术标签:
【中文标题】在android中使用UNION ALL时如何对特定语句使用order by【英文标题】:How to use order by for particular statement while using UNION ALL in android 【发布时间】:2013-06-03 13:25:59 【问题描述】:我只想在使用UNION ALL
条件时仅订购第二条SELECT
语句。我将查询写为:
db.rawQuery("SELECT _id, product_code, product_name, product_category,discount, in_stock, price, brand
FROM ProductDetails
WHERE _id || ' ' || product_name || product_code
LIKE ?
UNION ALL SELECT _id, product_code, product_name, product_category,discount, in_stock, price, brand
FROM ProductDetails WHERE _id || ' ' || product_name || product_code
NOT LIKE ? ORDER BY brand ", new String[] "%" +searchValue+ "%","%" +searchValue+");
上面的查询是排序总的Union语句。
谁能告诉我如何只对第二条SELECT
语句进行排序?
【问题讨论】:
【参考方案1】:不确定这是否适用于 SQLite,但值得一试:
SELECT _id, product_code, product_name, product_category,discount, in_stock, price, brand
FROM ProductDetails
WHERE _id || ' ' || product_name || product_code
LIKE ?
UNION ALL SELECT * FROM (SELECT _id, product_code, product_name, product_category,discount, in_stock, price, brand
FROM ProductDetails WHERE _id || ' ' || product_name || product_code
NOT LIKE ? ORDER BY brand)
如果这不起作用,您可以进行两个单独的 SQL 查询并在 java 中合并它们。
【讨论】:
【参考方案2】:尝试用括号分隔第二个 SELECT:
UNION ALL (SELECT _id, product_code, product_name, product_category,discount, in_stock, price, brand
FROM ProductDetails WHERE _id || ' ' || product_name || product_code
NOT LIKE ? ORDER BY brand)
【讨论】:
以上是关于在android中使用UNION ALL时如何对特定语句使用order by的主要内容,如果未能解决你的问题,请参考以下文章