这是一个学习理智的问题,而不是我需要找到的解决办法。我有一个产品实体,它有一个product_name属性。我想搜索product_name并返回所有在product_name中有超过1 'a‘的产品。我需要帮助来查询这个问题。
此代码显示所有具有“a”的产品
SELECT product_name AS 'Product Names' FROM product WHERE name LIKE '%a%'但我想要的产品超过1 'a‘。结构:产品
Product(p_Id, product_name, p_cost) 所以如果我有一个名为“汽车手册”的产品,它会返回,因为有3‘a。请帮助。
发布于 2016-11-15 03:21:18
查询将类似于:
SELECT product_name AS ProductNames
FROM product
WHERE name LIKE '%a%a%';不要对列别名使用单引号。最好的方法是给列命名,这样它们就不需要转义了。否则,根据数据库使用回标、双引号或方括号。
发布于 2016-11-15 03:30:13
您可以使用的另一个技巧是删除name列中的所有'a‘字符,然后检查长度是否减少了两个或两个以上:
SELECT product_name AS ProductNames
FROM product
WHERE LENGTH(REPLACE(name, 'a', '')) <= LENGTH(name) - 2https://stackoverflow.com/questions/40601458
复制相似问题