【问题标题】:MYSQL Wildcard issue for my query我的查询的 MYSQL 通配符问题
【发布时间】:2015-10-30 20:18:47
【问题描述】:

我遇到了 mysql 通配符的问题。 如下表:

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

现在我需要知道表中有多少名为 Marcel 的条目。

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 在表中出现的频率?

【问题讨论】:

  • 您从哪里得到#_ 通配符?它们不是我所知道的任何 SQL 的一部分。
  • @wallyk 来自doc _ matches exactly one character. # 我也是第一次看到。

标签: mysql sql wildcard


【解决方案1】:

使用% 通配符:

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 'users' WHERE name LIKE 'Marcel_' 只给我 1 结果(3是解决方案)

可能是错误的,请参阅:SqlFiddleDemo,因为它为您提供Marcel2Marcel3(除非您有尾随空格,我在示例中看不到您)已经提供)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      相关资源
      最近更新 更多