如何编写SQL查询来搜索所有列?

时间:2017-01-24 14:51:45

标签: sql oracle

select *
from DEMO_ORDER_ITEMS
where (
    ORDER_ITEM_ID like '%1%' || 
    ORDER_ID like '%1%' ||
    PRODUCT_ID like '%1%' ||
    UNIT_PRICE like '%1%'
);

这是从所有列中搜索和从数据库中获取搜索记录的正确查询吗?

1 个答案:

答案 0 :(得分:2)

您可能需要OR

select *
    from DEMO_ORDER_ITEMS
    where (
           ORDER_ITEM_ID like '%1%' OR
           ORDER_ID      like '%1%' OR
           PRODUCT_ID    like '%1%' OR
           UNIT_PRICE    like '%1%'
          );

请注意,此处不需要括号;但是,正如Matthew McPeak所注意到的那样,他们没有给出任何问题,如果您需要在AND中添加其他条件到现有的OR条件,它们会很有用。

||concatenation in Oracle的运算符;例如:

SQL> select 'a' || 'b' from dual;

'A
--
ab