ホームページ バックエンド開発 PHPチュートリアル 为什么我的 Mysql 不支持中文查询_PHP

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

Jun 01, 2016 pm 12:34 PM
mysql 中国語 なぜ 含む サポート 方法 お問い合わせ 記録

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%'即可!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

c言語の優先順位は何ですか!x? c言語の優先順位は何ですか!x? Apr 03, 2025 pm 02:06 PM

論理非操作者(!)には、括弧の横に優先順位があります。つまり、表現では、他のほとんどの演算子に先行します。優先順位を理解するには、暗記の暗記だけでなく、さらに重要なことに、複雑な表現での検出不可能なエラーを避けるために、その背後にある論理と潜在的な落とし穴を理解する必要があります。ブラケットを追加すると、表現の意図を明確にし、コードの明確さと保守性を向上させ、予期しない動作を防ぐことができます。

C言語関数における最大の一般的な除数を表現する方法に関するチュートリアル C言語関数における最大の一般的な除数を表現する方法に関するチュートリアル Apr 03, 2025 pm 11:21 PM

C言語で効率的かつエレガントに最大の一般的な除数を見つける方法:フェーズ分割を使用して、残りが0になるまで残りを絶えず分割することで解決します。2つの実装方法が提供されます:再帰と反復は簡潔で明確であり、反復実装はより高く、より安定しています。負の数と0を処理することに注意し、パフォーマンスの最適化を検討しますが、フェーズ分割自体は十分に効率的です。

C言語のデフォルトのベストプラクティス C言語のデフォルトのベストプラクティス Apr 03, 2025 pm 03:48 PM

C言語でのデフォルトのベストプラクティス:比類のない値のデフォルト処理として、スイッチステートメントの最後に配置します。プログラムの堅牢性を改善するために、未知の値または無効な値を処理するために使用されます。簡潔さを維持するために、ケースブランチとの複製を避けてください。読みやすさを改善するためのデフォルトのブランチの目的について明確にコメントします。明確さを維持するために、あるケースで複数のデフォルトを使用しないでください。デフォルトのブランチを簡潔に保ち、複雑な操作を避けます。列挙値をケース条件として使用して、保守性を向上させることを検討してください。大規模なスイッチステートメントでは、複数のデフォルトブランチを使用してさまざまな状況を処理します。

フロントエンドのFilreaderファイルの読み取り:なぜ最初にインスタンス化してから読む必要があるのですか? フロントエンドのFilreaderファイルの読み取り:なぜ最初にインスタンス化してから読む必要があるのですか? Apr 04, 2025 pm 01:48 PM

Filreaderのインスタンス化とフロントエンド開発のファイルの読み取りに関して、ユーザーがアップロードしたファイルを処理する必要があることがよくあります。使用

ストリームで動作するときにRXJSコードが有効にならないのはなぜですか? ストリームで動作するときにRXJSコードが有効にならないのはなぜですか? Apr 04, 2025 pm 06:27 PM

RXJSを使用してストリームで動作する場合、なぜコードが有効にならないのですか? rxjsを学ぶ...

C/Cの未使用変数:なぜそしてどのように? C/Cの未使用変数:なぜそしてどのように? Apr 03, 2025 pm 10:48 PM

C/Cコードレビューでは、変数が使用されない場合がよくあります。この記事では、未使用の変数の一般的な理由を調査し、コンパイラに警告を発行させる方法と特定の警告を抑制する方法を説明します。未使用の変数の原因コードに未使用の変数には多くの理由があります:コードの欠陥またはエラー:最も直接的な理由は、コード自体に問題があり、変数がまったく必要ないかもしれない、または正しく使用しないことです。コードリファクタリング:ソフトウェア開発プロセス中に、コードが継続的に変更およびリファクタリングされ、かつて重要な変数が取り残されていない場合があります。予約済み変数:開発者は、将来の使用のためにいくつかの変数を事前に事前にすることができますが、最終的には使用されません。条件付き編集:いくつかの変数は特定の条件(デバッグモードなど)のみである場合があります

ファイルの分割とマージを探索する:大きなファイルを管理するための革新的なツール ファイルの分割とマージを探索する:大きなファイルを管理するための革新的なツール Apr 04, 2025 am 07:15 AM

大量のファイルを転送または保存するのに苦労したことがありますか?この課題をエレガントで効率的な方法で簡素化するために設計されたオープンソースプロジェクトであるFilesplitter&Mergerについて学びます。このプロジェクトは何をしていますか?ファイルセグメンテーションとマージは、ファイルスプリッターの2つのツールで構成されています。大きなファイルを小さなチャンクに分割します。ファイルマージ - なぜこれらのブロックを元のファイルに再結合するのに役立つのか?特にそれらを転送または保存する場合、非常に大きなファイルを使用することは困難です。これらのツールを使用すると、ファイルを管理可能なフラグメントに分割してから、それらのフラグメントから元のファイルを再構築できます。ファイルスプリッターこのプログラムは、入力ファイルを指定されたサイズの小さな部分に分割します。各ブロックは別のファイルとして保存されます。使用法:分割するテキストをコピーします

console.logの出力結果の違い:同じ変数が異なる印刷方法を持っているが、結果が異なるのはなぜですか? console.logの出力結果の違い:同じ変数が異なる印刷方法を持っているが、結果が異なるのはなぜですか? Apr 04, 2025 am 11:48 AM

Console.log出力の違いについての詳細な議論は、この記事のログ出力で、Console.log関数の出力結果がコードの一部である理由を分析します。コードスニペットにはURLパラメーターの解像度が含まれます...

See all articles