2015-10-30 72 views
-1

我得到了一个与MySQL通配符的问题。 鉴于如下表:我的查询MYSQL通配符问题

id | name 
-------------- 
1 | Marcel 
2 | Marcel2 
3 | Marcel3 

现在我需要知道有多少entrys名为马塞尔是在表中。

SELECT id FROM 'users' WHERE name LIKE 'Marcel#' 
--gives me **0** results 

SELECT id FROM 'users' WHERE name LIKE 'Marcel_' 
-- gives me just **1** result (**3** would be the solution) 

我可以使用什么查询来确定名称+ nr在表格中的频率?

+0

你从哪里得到'#'和'_'通配符?他们不是我知道的任何SQL的一部分。 – wallyk

+0

@wallyk从[doc](https://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html)'_只能匹配一个字符。 '。用'#'我也是第一次看到它。 – lad2025

回答

3

使用通配符%

SELECT id FROM `users` WHERE name LIKE 'Marcel%' 

SqlFiddleDemo

% A substitute for zero or more characters 
_ A substitute for a single character 

所以你:

SELECT ID FROM '用户' WHERE名称LIKE 'Marcel_' 给我仅有1 结果(3将是解决办法)

可能是假的看到:SqlFiddleDemo,因为它可以让你Marcel2Marcel3(除非你有尾部空格,我不能例如在看你已经提供)

0

像'%Marcel%'这样的名字应该适合你。