使用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;