Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Like子句选择用户计数的mysql查询_Mysql_Sql - Fatal编程技术网

使用Like子句选择用户计数的mysql查询

使用Like子句选择用户计数的mysql查询,mysql,sql,Mysql,Sql,我有一个论坛,用户可以选择更改他们的名字。此外,我还有一些员工的名字像[ADM]James。我想阻止用户在James中更改他的名字 示例:我有一个员工的memeber名为[ADM]James,用户不能简单地在James中更改他的名字 这是我的查询:SELECT COUNT(*)FROM users,其中name='James'类似于'[%%'但是这个查询返回奇怪的数字,它总是返回整个用户数 我做错了什么 编辑,什么是不清楚的 我有2名职员。管理员和版主,管理员的标签名为[ADM]版主[MOD]。

我有一个论坛,用户可以选择更改他们的名字。此外,我还有一些员工的名字像
[ADM]James
。我想阻止用户在James中更改他的名字

示例:我有一个员工的memeber名为
[ADM]James
,用户不能简单地在James中更改他的名字

这是我的查询:
SELECT COUNT(*)FROM users,其中name='James'类似于'[%%'
但是这个查询返回奇怪的数字,它总是返回整个用户数

我做错了什么

编辑,什么是不清楚的

我有2名职员。管理员和版主,管理员的标签名为[ADM]版主[MOD]。示例两个名字:[ADM]James[MOD]Jeff..当用户尝试在中更改其姓名时,James count应返回1。因为已经有一个名为[ADM]James的职员成员

CREATE TABLE `user`  (
  `id` int(0) NOT NULL AUTO_INCREMENT,
  `user` varchar(24) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'NONAME',
) ENGINE = MyISAM AUTO_INCREMENT = 191782 CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
每个名字上都有“詹姆斯”的名字

WHERE name='James'LIKE'[%%'
不是有效的WHERE子句

的语法类似于pat[ESCAPE'ESCAPE\u char'] 您可以使用
%
\uuu

  • %
    匹配任意数量的字符,甚至零个字符

  • 与一个字符完全匹配

    • 使用下面的查询

      SELECT COUNT(*) FROM users WHERE name LIKE '%]%'
      
      SELECT user, COUNT(*) FROM users WHERE name LIKE '%[ADM]%' group by user;
      

      where name like'%James'
      我希望如果存在名称]James无法更改名称,那么您可以搜索
      where name like'%James%'
      的,如果您希望避免括号
      where name like'%James%'
      它是相同的,它将从表中返回所有用户。如果您的所有用户的名称中都有']',是的,它将返回所有用户。你想过滤[ADM]和[MOD]吗?然后,
      像“%[MOD]%”这样的名称或像“%[ADM]%”这样的名称的计数将大于0。如果您的新用户试图让您的管理员/modsIt使用其中一个名称,它将返回表中的所有用户。您只需要James吗?请再次阅读我的问题:DYour QUEST in not clear。或者提供您的样本数据和所需结果。我有2名工作人员。管理员/monderators。。管理员有tag[ADM],版主有tag[MOD[…如果我有一个名为[ADM]James的管理员,当论坛用户名为Jeffery时,他应该不能在James中更改名称。因为[ADM]James已经在使用它。我想要[ADM]James的用户计数,如果有一个名为[ADM]James的工作人员,计数应该返回1,
      
      SELECT COUNT(*) FROM users WHERE name LIKE '%]%'
      
      SELECT user, COUNT(*) FROM users WHERE name LIKE '%[ADM]%' group by user;