On Jan 14, 2012, at 5:23 PM, Tim Dunphy wrote:
> hello list,
>
> I have a number of hosts that I would like to delete using a wildcard (%) symbol.
>
> Here is the query I am using:
>
> mysql> delete from mysql.user where user='%.summitnjhome.com';
Couple of things:
* You want to compare your pattern to the host column, not user.
* To match the pattern, use LIKE, not =.
So: WHERE host LIKE '%.summitnjhome.com'
But to see what rows your DELETE will affect, try this first:
SELECT * FROM mysql.user WHERE host LIKE '%.summitnjhome.com';
Something else to consider: What if these accounts have privileges
defined in the other grant tables, such as database-level privileges
in the db table?
http://dev.mysql.com/doc/refman/5.5/en/string-comparison-functions.html#operator_like
http://dev.mysql.com/doc/refman/5.5/en/grant-table-structure.html
> Query OK, 0 rows affected (0.00 sec)
>
> And I am attempting to delete all the hosts at the domain 'summitnjhome.com'...
>
> But as you can see I am unsuccessful:
>
> mysql> select user,host from mysql.user;
> +----------+-----------------------------+
> | user | host |
> +----------+-----------------------------+
> | root | 127.0.0.1 |
> | repl | virtcent10.summitnjhome.com |
> | admin | virtcent11.summitnjhome.com |
> | repl | virtcent19.summitnjhome.com |
> | repl | virtcent23.summitnjhome.com |
> | repl | virtcent30.summitnjhome.com |
> +----------+-----------------------------+
>
>
> I know I can delete them individually and this is what I am going to do. But I would
> like to use this as a learning opportunity to help me understand how the wildcard works.
>
> Thanks in advance..
>
> Best regards,
> Tim
--
Paul DuBois
Oracle Corporation / MySQL Documentation Team
Madison, Wisconsin, USA
www.mysql.com