包含2个或更多字符的sql名称

时间:2016-11-15 03:20:30

标签: mysql sql

这是一个学习意识的问题,而不是我需要找到解决方案。 我有一个产品实体,它的属性为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。 请帮忙。

2 个答案:

答案 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