MySQL查询没有特定字的字段

时间:2017-03-07 10:50:58

标签: mysql database

我有一个电子产品,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?

1 个答案:

答案 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'
  ........
  ........