2017-03-07 5 views
0

私は電子アイテム、iPhoneなどのデータベースを持っています。MySQL特定の単語のないフィールドの照会

私はアイテムを個々のカテゴリに分類しようとしています。

私は自分のカテゴリに電話の各モデルを並べ替えています。例については

: アイテム:AppleのiPhone 5S 16ギガバイトグレー、ロック解除B カテゴリーそれがソートされます:携帯電話>りんご> 5S

アイテム:AppleのiPhone 6S 64ギガバイトグレー、O2 C カテゴリー、それがします携帯電話>りんご> 6Sプラス

私がいるトラブルを:それがソートされるAppleのiPhone 6Sプラス16ギガバイトグレー、ボーダフォンB カテゴリー:携帯電話>りんご> 6S

アイテム:にソートすることが私がちょうどノルウェーを探しているときですmal 6S、結果には6S Plusも表示されています。

iphone 6というタイトルの製品を検索するにはどのようなクエリを実行しますか?

+3

私たちはあなたを助けることができるように現在のクエリを表示できますか? – Whencesoever

+0

これらはデータベースに保存されている実際の文字列ですか?あなたのテーブルの構造を共有できますか?それは私たちがあなたを助けやすくなるでしょう。 – Mureinik

+0

@Mureinik \t こんにちは、私はこのスクリーンショットが好きですか? –

答えて

0

あなたのソート方法では、ブランドとモデルのモデル(あなたの例ではiphone 5s)があります。 データベースを作成し、いくつかのブランドを挿入します。それが最初のインサート

挿入しますならば、Appleは1かもしれないブランドのIDは(MySQLの自動インクリメントオプションで自動的に作成された)ことを

CREATE TABLE model (
    id int(11) NOT NULL AUTO_INCREMENT, 
    name varchar(24) NOT NULL DEFAULT '', 
    description text NOT NULL DEFAULT '', 
    id_brand int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
); 

注:

CREATE DATABASE stackoverflow; 

CREATE TABLE brand (
    id int(11) NOT NULL AUTO_INCREMENT, 
    name varchar(24) NOT NULL DEFAULT '', 
    description text NOT NULL DEFAULT '', 
    PRIMARY KEY (`id`) 
); 

INSERT INTO brand (name, description) VALUES ('apple', 'Apple Mobile Phones', 1); 
INSERT INTO brand (name, description) VALUES ('samsung', 'Samsung Mobile Phones', 2); 

'モデル' テーブルを作成します。一部のモデル:

INSERT INTO model (name, description, id_category) VALUES ('5s', '5s Apple Mobile Phones', 1); 
INSERT INTO model (name, description, id_category) VALUES ('5c', '5c Apple Mobile Phones', 1); 
INSERT INTO model (name, description, id_category) VALUES ('6', '6 Apple Mobile Phones', 1); 

と終了時にアイテム:

CREATE TABLE item (
    id int(11) NOT NULL AUTO_INCREMENT, 
    name varchar(24) NOT NULL DEFAULT '', 
    description text NOT NULL DEFAULT '', 
    id_model int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
); 

INSERT INTO item (name, description, id_model) VALUES ('Apple iPhone 5S', 'Apple iPhone 5S 16GB Grey, Unlocked', 1); 
..... 
..... 

id_modelとid_brandは外部キーです。モデルと「AppleのiPhone 5Sの携帯電話のブランドを選択

(ID = 1):

SELECT a.name, b.name, b.name 
FROM item a, model b, brand c 
WHERE a.id = 1 
    AND a.id_model = b.id 
    AND b.id_brand = c.id 

結果:

'Apple iPhone 5S' | '5s' | 'apple' 

すべて( '5S' をフィルタリング| 'リンゴ' )携帯電話:

SELECT a.name, a.description 
FROM item a, model b, brand c 
WHERE b.id = 1 
    AND b.id_brand = c.id 

結果:

'Apple iPhone 5S' | '5s Apple Mobile Phones' 
    ........ 
    ........ 
関連する問題