Непонятна деталь в запросе

idencial

Одинаковый
Непонятна деталь в запросе

Олег Юсов как-то в статье про релевантность написал следующий запрос:

$query = "SELECT *, MATCH field AGAINST ('$searchwords') as relev FROM table ORDER BY relev DESC"

Почти все мне в этом запросе понятно, кроме одного:
зачем после * идет запятая? ЧТо это за синтаксис такой?
 
Re: Непонятна деталь в запросе

Автор оригинала: idencial
Олег Юсов как-то в статье про релевантность написал следующий запрос:

$query = "SELECT *, MATCH field AGAINST ('$searchwords') as relev FROM table ORDER BY relev DESC"

Почти все мне в этом запросе понятно, кроме одного:
зачем после * идет запятая? ЧТо это за синтаксис такой?
выбираются все поля из таблицы table + поле relev. В синтаксисе SQL "все поля" - это астерикс (*), а "+" - это запятая... вроде...
 
поля, которые ты запрашиваешь, перечисляются через запятую. вот и весь синтаксис :-))))
 
ну правильно, если я пишу SELECT field1, field2 MATCH
А тут получается SELECT field1, field2, MATCH

Вопрос о этой второй запятой после field2,

Также не совсем понятно использование поля relev, которого фактически в таблице нет
 
MATCH field AGAINST ('$searchwords') - это поле :-)

селект может возвращать не только поля, которые есть в таблицах. он может возвращать вообще все, что угодно.
выполни
select 'test'
select 1+1
можно так:
select *,'test' from table limit 1
select id,1+1 from table limit 1
(лимит нужен чтобы тебе не выдавало количество ответов по числу записей в таблице)
тебе знакома конструкция
select count(*) from table ?
а вед поля count(*) тоже нет в таблице!

as - это присвоение полю нового имени
select 2*2 as pole
 
Это все понятно, спасибо.

Но все же запись *, означается выбрать все поля и еще одно (в данном случае relev)?
 
Сверху