Q:
I am writing a query condition when the problem is as follows:
If I want to write all the records that contain the word "Li" in a field
$str = "Li";
SELECT * FROM table where field like '% $STR% ';
In addition to the record containing the word "Li", there is a record that does not contain the word "Li". Why?
A:
In MySQL, the sorting and finding results of Chinese characters are wrong when sorting and searching in the same language. This situation is present in many versions of MySQL. If this problem is not resolved, then MySQL will not be able to actually handle Chinese.
This problem occurs because MySQL is case insensitive when querying strings, and when Yi MySQL is generally used as the default character set for the ISO-8859 character set, this behavior is caused by the Chinese encoding character-case conversion during comparison.
Method One:
The workaround is to add the "binary" attribute to the field that contains the Chinese as a binary comparison, for example, change "name char (10)" to "name Char (TEN) binary".
Method Two:
If you compile MySQL using the source code, you can compile MySQL using the--WITH--CHARSET=GBK parameter, so that MySQL will support the Chinese search and sort directly.
Method Three:
You can use Mysql's locate function to judge. Take the above problem as an example, using the following method:
SELECT * FROM table WHERE locate (field, ' Lee ') > 0;
This site uses this method, it feels good. :P
Method Four:
Change your SELECT statement to this, select * from TABLE WHERE fields like BINARY '%find% ' Can!
http://www.bkjia.com/PHPjc/632466.html www.bkjia.com true http://www.bkjia.com/PHPjc/632466.html techarticle Q: I am writing a query condition when the problem is as follows: If I want to write a field containing the word "Li" all records $str = "Li"; select * from table where field like% $STR%;