这是一个学习意识的问题,而不是我需要找到解决方案。 我有一个产品实体,它的属性为product_name。我想搜索product_name并返回所有超过1' a'在product_name中。我需要有关此查询的帮助。
此代码显示所有包含' a'
的产品SELECT product_name AS 'Product Names' FROM product WHERE name LIKE '%a%'
但是我的产品超过1' a'。 结构:产品
Product(p_Id, product_name, p_cost)
所以,如果我有一个名为" Car Manual"它将返回,因为有3个' a。 请帮忙。
答案 0 :(得分:3)
查询看起来像:
SELECT product_name AS ProductNames
FROM product
WHERE name LIKE '%a%a%';
不要对列别名使用单引号。最好的办法是命名列,这样就不需要对它们进行转义。否则请使用反引号,双引号或方括号,具体取决于您的数据库。
答案 1 :(得分:0)
您可以使用的另一个技巧是删除名称列中的所有“a”字符,然后检查长度是否减少了两个或更多:
SELECT product_name AS ProductNames
FROM product
WHERE LENGTH(REPLACE(name, 'a', '')) <= LENGTH(name) - 2