0

次の質問をあなたの前に置きたいと思います。

データベースはさまざまな名前で構成されています。これらの名前には、é、êなどの「特殊」文字を含めることができます。

私の計画は、データベースからの名前を含むSEOに適したURLを持つことでした。リンクの作成は大きな問題ではありません。normalize関数またはstr_replace関数を使用して、すべての特殊文字を通常の文字に置き換えるだけです。

しかし、SEOフレンドURLを使用してデータベースにクエリを実行する場合(必要な検証とチェックの後)。DB ofcourseは、特殊文字のために結果を返しません。

ここで問題が発生します。特殊文字を使用せずにデータベースにクエリを実行する方法はありますか、それとも特殊文字を使用せずに名前を格納するデータベースに別の列を配置する方がよいでしょうか(作成中にそれらをクリーンアップする必要が少なくなります)。リンクとクエリが簡単)。これには2つの列を維持する必要がありますが、データベースに簡単にクエリを実行できるようになります。

何か案は?

4

2 に答える 2

1

照合に応じて、次のhôtelようになりますhotel

mysql> select 'hôtel' = 'hotel';
+--------------------+
| 'hôtel' = 'hotel'  |
+--------------------+
|                  1 |
+--------------------+

hôtelあなたが抱えている問題は、プレゼンテーションの問題と永続性の問題を混ぜ合わせているため、非常に間違っていると思うhtmlエンティティ()を保存していることです。それを取り除き、文字セットに適切な照合を選択してから、それをデータベースのデフォルトにするか、クエリごとに設定します

Webで使用するための適切な文字セットはですutf8データベースを設定するには、次のようにします。

create database mydatabase character set utf8 collate utf8_unicode_ci;
于 2012-09-17T23:27:00.167 に答える
0

簡単な方法は、StackflowのURLのようにURLにIDを入れることです。

于 2012-09-17T20:51:57.890 に答える