如何让表只显示包含特定子字符串的数据

时间:2014-02-17 23:42:07

标签: sql

我必须在其中显示包含“传感器”一词的所有产品。我不能用LIKE。我试过使用包含,我得到一个无效的关系运算符错误。我已经尝试了我能想到的一切,但没有任何工作。我正在使用SQL Developer 4。

代码:

SELECT product_name, name
FROM a_product p JOIN a_item i
ON p.product_id=i.product_id
JOIN a_sales_order so ON i.order_id=so.order_id
JOIN a_customer c ON so.customer_id=c.customer_id

输出:

PRODUCT_NAME                   NAME                                        
------------------------------ ---------------------------------------------
Aft Transducer                 Just Electronics                              
75 Gauge Wire Line             Timelines                                     
Aft Transducer                 Vollyrite                                     
Nts Transducer                 Every Mountain                                
Snyder Lock Switch             Shape Up                                      
Nts Transducer                 Shape Up                                      
Sft Transducer 55              Vollyrite                                     
75 Gauge Wire Line             Shape Up

我也像我提到的那样尝试使用contains,但它给了我错误。这是我用过的:

WHERE contains(product_name, 'Transducer')

我在加入声明后添加了。

所需的输出如下所示:

PRODUCT_NAME                   NAME                                        
------------------------------ ---------------------------------------------
Aft Transducer                 Just Electronics                                              
Aft Transducer                 Vollyrite                                     
Nts Transducer                 Every Mountain                                              
Nts Transducer                 Shape Up                                      
Sft Transducer 55              Vollyrite                                     

2 个答案:

答案 0 :(得分:1)

如果你不能使用LIKE,因为这对学校来说是一个问题,另一种选择是REGEXP_LIKE:

SELECT product_name, name
  FROM a_product p
  JOIN a_item i
    ON p.product_id = i.product_id
  JOIN a_sales_order so
    ON i.order_id = so.order_id
  JOIN a_customer c
    ON so.customer_id = c.customer_id
 where regexp_like(product_name, 'Transducer')

答案 1 :(得分:0)

https://dev.mysql.com/doc/refman/5.1/en/regexp.html

 "SELECT * FROM `foo` WHERE `name` REGEXP *Transducer*

或类似的东西?