Heim Backend-Entwicklung PHP-Tutorial 为什么我的 Mysql 不支持中文查询_PHP

为什么我的 Mysql 不支持中文查询_PHP

Jun 01, 2016 pm 12:34 PM
mysql 中文 Warum Enthalten 支持 方法 查询 记录

MySQL查询

Q:

我在写一个查询条件时的问题如下:
如我想写一个字段中包含“李”字的所有记录
$str="李";
select * from table where field like '%$str%' ;
显示的记录中除了包含”李”字的记录,还有不包含“李”字的记录。为什么?

A:

在MySQL中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的。这种情况在MySQL的很多版本中都存在。如果这个问题不解决,那么MySQL将无法实际处理中文。

  出现这个问题的原因是:MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象。

方法一:

解决方法是对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary"。

方法二:

  如果你使用源码编译MySQL,可以编译MySQL时使用--with--charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了。

方法三:

  可以使用 Mysql 的 locate 函数来判断。以上述问题为例,使用方法为:
SELECT * FROM table WHERE locate(field,'李') > 0;
本站使用的就是这种方法,感觉还不错。:P


方法四:

把您的Select语句改成这样,SELECT * FROM TABLE WHERE FIELDS LIKE BINARY '%FIND%'即可!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was hat die Priorität der C -Sprache! X? Was hat die Priorität der C -Sprache! X? Apr 03, 2025 pm 02:06 PM

Der logische Nichtoperator (!) Hat die Priorität neben Klammern, was bedeutet, dass er den meisten anderen Betreibern in Ausdrücken vorausgeht. Das Verständnis der Priorität erfordert nicht nur ein Auswendiglernen, sondern auch das Verständnis der Logik und der potenziellen Fallstricke, um nicht nachweisbare Fehler in komplexen Ausdrücken zu vermeiden. Das Hinzufügen von Klammern kann die Ausdrucksabsicht klären, die Klarheit und Wartbarkeit der Code verbessern und unerwartetes Verhalten verhindern.

Best Practices für C -Sprache Standardeinstellung Best Practices für C -Sprache Standardeinstellung Apr 03, 2025 pm 03:48 PM

Die Best Practices von Standard in der C -Sprache: Platzieren Sie sie am Ende der Switch -Anweisung als Standardverarbeitung für unerreichte Werte; Es wird verwendet, um unbekannte oder ungültige Werte zu verarbeiten, um die Programm Robustheit zu verbessern. Vermeiden Sie die Duplikation mit Fallzweigen, um die zuversichtliche Aufrechterhaltung zu erhalten. Kommentieren Sie deutlich zum Zweck der Standardzweig, um die Lesbarkeit zu verbessern. Vermeiden Sie es, mehrere Standardeinstellungen in einem Fall zu verwenden, um Klarheit aufrechtzuerhalten. Halten Sie den Standardzweig präzise und vermeiden Sie komplexe Operationen. Erwägen Sie, Aufzählungswerte als Fallbedingungen zu verwenden, um die Wartbarkeit zu verbessern. Verwenden Sie in großen Switch -Anweisungen mehrere Standardzweige, um unterschiedliche Situationen zu verarbeiten.

Tutorial, wie man den größten gemeinsamen Divisor in C -Sprachfunktionen darstellt Tutorial, wie man den größten gemeinsamen Divisor in C -Sprachfunktionen darstellt Apr 03, 2025 pm 11:21 PM

Methoden zur effizienten und eleganten Methode finden den größten gemeinsamen Divisor in der C -Sprache: Verwenden Sie die Phasenaufteilung, um den Rest ständig zu teilen, bis der Rest 0 ist. Zwei Implementierungsmethoden werden bereitgestellt: Rekursion und Iteration sind prägnant und klar, und die iterative Implementierung ist höher und stabiler. Achten Sie auf die Behandlung negativer Zahlen und 0S und berücksichtigen Sie die Leistungsoptimierung, aber die Phasenabteilung selbst ist effizient genug.

Front-End-Filerader-Datei Lesen: Warum müssen Sie zuerst instanziieren und dann lesen? Front-End-Filerader-Datei Lesen: Warum müssen Sie zuerst instanziieren und dann lesen? Apr 04, 2025 pm 01:48 PM

In Bezug auf FileReader-Instanziierung und Dateilesen in der Front-End-Entwicklung müssen wir häufig von Benutzern hochgeladene Dateien verarbeiten. verwenden

Erforschen Erforschen Apr 04, 2025 am 07:15 AM

Haben Sie jemals Schwierigkeiten gehabt, große Mengen an Dateien zu übertragen oder zu speichern? Erfahren Sie mehr über FileSplitter & Merger, ein Open -Source -Projekt, das diese Herausforderung auf elegante und effiziente Weise vereinfachen soll. Was macht dieses Projekt? Die Dateisegmentierung und der Zusammenführen bestehen aus zwei Tools: Dateisplitter - Dividieren großer Dateien in kleinere Stücke. Dateiverführung - Warum ist es nützlich, diese Blöcke in die Originaldatei zu rekombinieren? Die Arbeit mit sehr großen Dateien kann entmutigend sein, insbesondere beim Übertragen oder Speichern. Mit diesen Tools können Sie Dateien in überschaubare Fragmente aufteilen und dann die Originaldateien aus diesen Fragmenten neu aufbauen. Dateisplitter Dieses Programm spaltet die Eingabedatei in kleinere Teile einer bestimmten Größe auf. Jeder Block wird als separate Datei gespeichert. Nutzung: Kopieren Sie den zu spaltenden Text

Warum wird mein RXJS -Code beim Betrieb auf Streams nicht wirksam? Warum wird mein RXJS -Code beim Betrieb auf Streams nicht wirksam? Apr 04, 2025 pm 06:27 PM

Warum wird mein Code nicht wirksam, wenn sie RXJS zum Betrieb in Streams verwenden? Rxjs lernen ...

Warum gibt es nach dem Sprung des Vue-Router-Sprungs keine Seitenanfrageninformationen im Konsolenetzwerk? Warum gibt es nach dem Sprung des Vue-Router-Sprungs keine Seitenanfrageninformationen im Konsolenetzwerk? Apr 04, 2025 pm 05:27 PM

Warum gibt es nach dem Sprung des Vue-Router-Sprungs keine Seitenanfrageninformationen im Konsolenetzwerk? Wenn Sie Vue-Router für die Umleitung von Seiten verwenden, können Sie eine ...

Warum gibt es keine Ausgabe, wenn RXJs verwendet werden, um Stream -Elemente zu verarbeiten? Wie kann man und von den Betreibern richtig benutzt? Warum gibt es keine Ausgabe, wenn RXJs verwendet werden, um Stream -Elemente zu verarbeiten? Wie kann man und von den Betreibern richtig benutzt? Apr 04, 2025 pm 06:36 PM

Diskussion über Probleme bei der Verwendung von RXJs zum Betrieb von Elementen in Streams im Lernen und Verwendung von RXJs ...

See all articles