2015-07-14 1 views
4

У меня есть таблица «student» в моей базе;Как получить результат комбинированного поля SQL

CREATE TABLE student 
(
stud_id VARCHAR(20), 
fname VARCHAR(100), 
lname VARCHAR(100), 
PRIMARY KEY (stud_id) 
); 

У меня есть данные в «студент» таблицы

INSERT INTO student (stud_id, fname, lname) 
VALUES ('s0001', 'foo', 'bar'); 

Я хочу найти stud_id студента, который имеет полное имя «Foo бар» , как это сделать? Я попытался это

SELECT stud_id FROM student WHERE 'fname'+' '+'lname' LIKE 'fo%'; 

Сво не ошибка, но я не могу получить «Foo бар» stud_id. Как это сделать?

+2

MySQL конкатенации использует [ 'concat'] (https://dev.mysql.com/doc/refman/ 5.0/ru/string-functions.html) Функция (не +) – amdixon

ответ

2

Одиночные кавычки сделают вашу колонку строкой, поэтому не используйте ее в столбцах. Кроме того, вместо + использовать concat функцию конкатенации столбцов

SELECT stud_id 
FROM student 
WHERE concat(fname,' ',lname) LIKE 'fo%'; 
1

Попробуйте этот запрос,

SELECT stud_id FROM student WHERE Convert(varchar(150),fname+' '+lname) LIKE 'fo%'; 
+0

, предлагающая вам некоторое объяснение, поможет сделать ее лучше. – NathanOliver

Смежные вопросы