我有一个电子产品,iphone等数据库。
我正在尝试将这些项目整理成单独的类别。
我正在将每种型号的手机分类到他们自己的类别中。
例如: 项目:苹果iPhone 5S 16GB灰色,未锁定B 它将被分类到的类别:手机> apple> 5S
项目:Apple iPhone 6S 64GB灰色,O2 C. 它将被分类到的类别:手机> apple> 6S
项目:苹果iPhone 6S Plus 16GB灰色,沃达丰B 它将被分类到的类别:手机> apple> 6s Plus
我遇到的麻烦是当我正在搜索正常的6S时,结果显示6S Plus。
我会运行什么查询来查找标题为iphone 6的产品,但不包括单词plus?
答案 0 :(得分:0)
在您的排序方法中,有一个项目的品牌和型号(在您的示例中为iphone 5s)。 创建数据库并插入一些品牌。
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);
创建'模型'表:
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`)
);
请注意,如果是第一次插入,Apple品牌的ID可能为1(使用mysql自动增量选项自动创建)
插入一些模型:
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'|'apple')手机:
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'
........
........