我确保我使用的是单引号而不是双引号,但是由于某种原因,它表示性别列不明。
我尝试将'AND'语句更改为小写,尝试使用各种引号,还修复了表内容和值中设置值的顺序。
CREATE DATABASE MYSQLEXERCISE5;
USE MYSQLEXERCISE5;
CREATE TABLE myemployees (
gender VARCHAR(255),
first_name VARCHAR(255),
last_name VARCHAR(255),
birth_place VARCHAR(255),
citizen_ship VARCHAR(255),
yearly_wage INT(7) NOT NULL,
age INT(3) NOT NULL,
hours_worked INT(5) NOT NULL,
years_employed INT(6) NOT NULL
);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Filip', 'Lazarevic', 'Montenegro', 'Australia', 30000, 19, 8000, 4);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Daniel', 'Craig', 'USA', 'England', 75000, 37, 26000, 13);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'John', 'Jovovich', 'Serbia', 'USA', 55000, 27, 8000, 4);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Stefan', 'Stojic', 'Croatia', 'Croatia', 'Spain', 100000, 24, 12000, 6);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'David', 'Longbottom', 'Ireland', 'UK', 67000, 43, 10000, 5);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Riley', 'Reynolds', 'Canada', 'Canada', 90000, 30, 20000, 10);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('F', 'Riley', 'Raymond', 'Iceland', 'Greenland', 22000, 19, 6000, 3);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Jade', 'Michaels', 'Egypt', 'France', 100000, 55, 30000, 15);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('F', 'Jade', 'Smith', 'Syria', 'India', 10000, 50, 10000, 5);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Sam', 'Wilson', 'Scotland', 'Ireland', 34000, 25, 4000, 2);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('F', 'Sam', 'Wade', 'Russia', 'Finland', 55000, 32, 8000, 4);
SELECT * FROM myemployees WHERE first_name = 'Sam' AND gender = 'M';
SELECT * FROM myemployees WHERE first_name = 'Jade' AND gender = 'F';
我希望它显示性别为M的山姆人和性别为F的玉人
答案 0 :(得分:1)
您可以尝试使用or
模式(MySQL v5.7)
CREATE TABLE myemployees (
gender VARCHAR(255),
first_name VARCHAR(255),
last_name VARCHAR(255),
birth_place VARCHAR(255),
citizen_ship VARCHAR(255),
yearly_wage INT(7) NOT NULL,
age INT(3) NOT NULL,
hours_worked INT(5) NOT NULL,
years_employed INT(6) NOT NULL
);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Filip', 'Lazarevic', 'Montenegro', 'Australia', 30000, 19, 8000, 4);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Daniel', 'Craig', 'USA', 'England', 75000, 37, 26000, 13);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'John', 'Jovovich', 'Serbia', 'USA', 55000, 27, 8000, 4);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'David', 'Longbottom', 'Ireland', 'UK', 67000, 43, 10000, 5);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Riley', 'Reynolds', 'Canada', 'Canada', 90000, 30, 20000, 10);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('F', 'Riley', 'Raymond', 'Iceland', 'Greenland', 22000, 19, 6000, 3);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Jade', 'Michaels', 'Egypt', 'France', 100000, 55, 30000, 15);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('F', 'Jade', 'Smith', 'Syria', 'India', 10000, 50, 10000, 5);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Sam', 'Wilson', 'Scotland', 'Ireland', 34000, 25, 4000, 2);
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('F', 'Sam', 'Wade', 'Russia', 'Finland', 55000, 32, 8000, 4);
查询#1
SELECT *
FROM myemployees
WHERE (first_name = 'Sam' AND gender = 'M') or (first_name = 'Jade' AND gender = 'F');
| gender | first_name | last_name | birth_place | citizen_ship | yearly_wage | age | hours_worked | years_employed |
| ------ | ---------- | --------- | ----------- | ------------ | ----------- | --- | ------------ | -------------- |
| F | Jade | Smith | Syria | India | 10000 | 50 | 10000 | 5 |
| M | Sam | Wilson | Scotland | Ireland | 34000 | 25 | 4000 | 2 |
答案 1 :(得分:0)
您可以尝试使用IN
SELECT *
FROM myemployees
WHERE
first_name in ('Sam','Jade') AND gender in ('M' , 'F')
答案 2 :(得分:0)
您为该列数据插入操作做错了,这就是您得到该错误的原因
INSERT INTO myemployees (gender, first_name, last_name, birth_place, citizen_ship,
yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Stefan', 'Stojic', 'Croatia', 'Spain', 100000,24, 24, 6);
在此行中,您提供了10个列值,但应为9 否则您的两个查询都可以正常工作
SELECT * FROM myemployees WHERE first_name = 'Sam' AND gender = 'M';
输出
gender first_name last_name birth_place citizen_ship yearly_wage age hours_worked years_employed
M Sam Wilson Scotland Ireland 34000 25 4000 2
SELECT * FROM myemployees WHERE first_name = 'Jade' AND gender = 'F';
输出
gender first_name last_name birth_place citizen_ship yearly_wage age hours_worked years_employed
F Jade Smith Syria India 10000 50 10000 5
您可以使用union all
SELECT * FROM myemployees WHERE first_name = 'Sam' AND gender = 'M'
union all
SELECT * FROM myemployees WHERE first_name = 'Jade' AND gender = 'F'
代替unoin all
,您可以使用显示@ fa06的in
,也可以使用显示@ D-shish的OR
答案 3 :(得分:0)
首先从数据库中删除表,然后运行此查询
`CREATE TABLE myemployees (
gender VARCHAR(255),
first_name VARCHAR(255),
last_name VARCHAR(255),
birth_place VARCHAR(255),
citizen_ship VARCHAR(255),
yearly_wage INT NOT NULL,
age INT NOT NULL,
hours_worked INT NOT NULL,
years_employed INT NOT NULL
);
INSERT INTO myemployees (gender, first_name, last_name, birth_place,
citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Filip', 'Lazarevic', 'Montenegro', 'Australia', 30000, 19,
8000,
4);
INSERT INTO myemployees (gender, first_name, last_name, birth_place,
citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Daniel', 'Craig', 'USA', 'England', 75000, 37, 26000, 13);
INSERT INTO myemployees (gender, first_name, last_name, birth_place,
citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'John', 'Jovovich', 'Serbia', 'USA', 55000, 27, 8000, 4);
INSERT INTO myemployees (gender, first_name, last_name, birth_place,
citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Stefan', 'Stojic', 'Croatia','Spain', 100000, 24, 12000, 6);
INSERT INTO myemployees (gender, first_name, last_name, birth_place,
citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'David', 'Longbottom', 'Ireland', 'UK', 67000, 43, 10000, 5);
INSERT INTO myemployees (gender, first_name, last_name, birth_place,
citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Riley', 'Reynolds', 'Canada', 'Canada', 90000, 30, 20000, 10);
INSERT INTO myemployees (gender, first_name, last_name, birth_place,
citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('F', 'Riley', 'Raymond', 'Iceland', 'Greenland', 22000, 19, 6000, 3);
INSERT INTO myemployees (gender, first_name, last_name, birth_place,
citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Jade', 'Michaels', 'Egypt', 'France', 100000, 55, 30000, 15);
INSERT INTO myemployees (gender, first_name, last_name, birth_place,
citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('F', 'Jade', 'Smith', 'Syria', 'India', 10000, 50, 10000, 5);
INSERT INTO myemployees (gender, first_name, last_name, birth_place,
citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('M', 'Sam', 'Wilson', 'Scotland', 'Ireland', 34000, 25, 4000, 2);
INSERT INTO myemployees (gender, first_name, last_name, birth_place,
citizen_ship, yearly_wage, age, hours_worked, years_employed)
VALUES ('F', 'Sam', 'Wade', 'Russia', 'Finland', 55000, 32, 8000, 4);`
我希望它将对您有帮助。 See This Is Causing Error For You