0

以前に検索を作成しましたが、正常に機能しますが、別のテーブルで検索しようとすると、いくつかの問題が発生します。

エラーが発生しました...

SQLクエリが失敗しました。クエリを確認してください。

返されたエラー:列リストに一致するFULLTEXTインデックスが見つかりません

私は(私の知る限り)列をフルテキストに正常に変換し、データベースは...に設定されています。

これが私のSQL情報です...

CREATE TABLE `users`(
  `auto` int(11)NOT NULL AUTO_INCREMENT、
  `user_id` varchar(6)DEFAULT NULL、
  `username` varchar(15)DEFAULT NULL、
  `first_name` varchar(20)NOT NULL DEFAULT''、
  `last_name` varchar(20)NOT NULL DEFAULT''、
  `email` varchar(30)NOT NULL DEFAULT''、
  `password` varchar(128)NOT NULL DEFAULT''、
  `ランキング`varchar(128)DEFAULT '1'、
  `sex` varchar(128)NOT NULL DEFAULT''、
  `active` varchar(128)NOT NULL DEFAULT '0'、
  `ppic` varchar(128)NOT NULL DEFAULT'ppic.jpg'、
  `time_zone` varchar(128)DEFAULT'America / Los_Angeles'、
  `adult_filter` varchar(128)DEFAULT '0'、
  主キー( `auto`)、
  フルテキストキー`user_id`(` user_id`、 `username`、` first_name`、 `last_name`、` email`、 `password`、` sex`、` active`、 `ppic`、` time_zone`、 `adult_filter`) 、
  フルテキストキー`user_id_2`(` user_id`、 `username`、` first_name`、 `last_name`)、
  フルテキストキー`ft_index_name2`(` user_id`、 `username`、` first_name`、 `last_name`)、
  フルテキストキー`ft_index_name32`(` user_id`、 `username`、` first_name`、 `last_name`、` email`、` password`、 `ranking`、` sex`、 `active`、` ppic`、 `time_zone`、 `adult_filter`)、
  フルテキストキー`ft_index_name322`(` user_id`)、
  フルテキストキー`ft_index_name3223`(` first_name`)、
  フルテキストキー`ft_index_name32233`(` last_name`)、
  フルテキストキー`ft_index_name322433`(` username`)、
  フルテキストキー`ft_index_name3232433`(` username`)
)ENGINE = MyISAM AUTO_INCREMENT = 40 DEFAULT CHARSET = utf8

これに基づいて気づかなかった場合は、フルテキストキーで何をしているのかわかりません。これが問題である可能性があります。それでも、私は最初に似たようなことをしました、そしてそれはうまくいきます。

これは私の検索クエリです...

SELECT user_id、username、first_name、last_name、
 MATCH(username、first_name、last_name)AGAINST('"。$search。"')ASスコア
 ユーザーから
 WHERE MATCH(username、first_name、last_name)AGAINST('"。$search。"')
 ユーザー名で注文する

誰かがこの問題を引き起こしている可能性があることを知っていますか?私は何日もこれにいて、問題を理解することができません。どんな助けでもありがたいです、ありがとう。

4

1 に答える 1

0

次のようなフルテキストキーが必要です。

FULLTEXT KEY `ft_index_thisoneiscorrect` (username, first_name, last_name)

(一致した列のリストは、クエリで一致した列のリストと同じであることに注意してください。)

他のすべてのものを取り除きます。それらのほとんどは役に立たず、いくつかは完全に危険です。

于 2012-01-17T06:08:47.980 に答える