MySQL Where like

MySQL LIKE syntax

The LIKE operator is used in a WHERE expression to search for the specified content in a matching field, with the following syntax:

 WHERE column LIKE pattern
 WHERE column NOT LIKE pattern

LIKE in front of the operation with the NOT operator, that means the opposite with the meaning of LIKE, select the column does not contain pattern data records.

LIKE is usually used with the wildcard%,%that does not appear in the wildcard pattern. Without the wildcard%LIKE syntax, which means exact match, the actual effect is equivalent to the = operator.


uid username
 SELECT * FROM user WHERE username LIKE 'ja%'

The results are as follows:

uid username

The example is to find out all the username to "ja" at the beginning of the record

The following example, will query out all the fields anywhere in the username contains a character record:

 SELECT * FROM user WHERE username LIKE '%a%'


MySQL LIKE matching characters, the default is not case-sensitive, if you need to match the case-sensitive, you can use the BINARY operator:
 SELECT * FROM user WHERE username LIKE BINARY '%azz%'
 SELECT * FROM user WHERE username LIKE BINARY '%aZZ%'

The BINARY operator represents a binary comparison, so the operator can be strictly case-sensitive, so the contents of the two SQL queries above are different.

The efficiency of the LIKE operator

LIKE operator to field data to scan one by one match, the actual implementation of the efficiency is poor, even if the field has been built index(a%this approach will use the index). When the amount of data is large, as far as possible to reduce the use of LIKE operator, there is not much room for optimization.

Copyright 2014-2017 by All Rights Reserved.