【问题】编写 SQL 语句,从 Products 表中检索产品名称(prod_name)和描述(prod_desc),仅返回描述中同时出现 toy 和 carrots 的产品。有好几种方法可以执行此操作,但对于这个挑战题,请使用 AND 和两个 LIKE 比较。
prod_name | prod_desc |
a0011 | usb |
a0019 | iphone13 |
b0019 | gucci t-shirts |
c0019 | gucci toy |
d0019 | lego carrots toy |
like:
select prod_name,prod_desc from Products
where prod_desc like '%toy%' and prod_desc like '%carrots%'
正则表达式:
select prod_name,prod_desc from Products
where prod_desc regexp "(.*toy.*carrots.*)|(.*carrots.*toy.*)"
在正则表达式中,字符.表示任意单个字符(除了\n),而*表示区间,就是前面的字符重复的次数,*表示的是重复0到无限次。那.*就表示任意多个字符。
+和*差不多,表示出现1次到无限次
.* 等价于.{0,} 而.+等价.{1,}