SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.02.2009 12:33:14

cmdhitman
Участник
Зарегистрирован: 18.01.2009
Сообщений: 4

как выполнить запрос такой

Здравствуйте уважаемы форумчане - у меня такая вот проблемка - есть база kursor и таблицы в ней users и node  в обеих таблицах есть столбец uid , вопрос как перенести значения uid из таблицы users в таблицу node с заменой значений - думаю нужно сделать через update - но что-то не получается sad

Неактивен

 

#2 18.02.2009 12:37:31

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: как выполнить запрос такой

Поясните, какую именно информацию нужно перенести, если uid нужно заменить.

Неактивен

 

#3 18.02.2009 12:55:16

cmdhitman
Участник
Зарегистрирован: 18.01.2009
Сообщений: 4

Re: как выполнить запрос такой

Я хочу заменить значения uid в node значениями uid из users. В NODE ЗНАЧЕНИЯ везде равны 1, а в users значения от 148 до 300 - нужно чтобы там воообщем появились значения эти из users с заменой - или можна каким-то образом их изменить сразу в node Спасиба за ответ заранее

Неактивен

 

#4 18.02.2009 15:09:54

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: как выполнить запрос такой

Должно быть поле, по которому устанавливается соответствие строк между таблицами. В приведенном примере это id.


update users,node set node.uid=users.uid where node.id=users.id
 


Подробнее см http://dev.mysql.com/doc/refman/5.0/en/update.html

Неактивен

 

#5 18.02.2009 20:43:01

smackthat
Завсегдатай
Зарегистрирован: 18.02.2009
Сообщений: 32

Re: как выполнить запрос такой

Чтобы не плодить новую тему задам в этой вопрос.
У меня есть одна таблица news. В ней я размещаю новости. Там есть поле id - номер новости, которое автоматически увеличивается. Тоесть получается что последняя новость имеет максимальное id. Как мне выбрать 5 последних новостей?

подозреваю что нужно использовать операторы BEETWEEN и MAX, но как не знаю. Поясните плиз господа.

mysql_query("SELECT * FROM news WHERE id BEETWEEN max(id) and max(id)-5");

Неактивен

 

#6 18.02.2009 20:57:41

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: как выполнить запрос такой

SELECT * FROM news ORDER BY id DESC LIMIT 5

Фраза про "не плодить новую тему" — чудесна smile

Неактивен

 

#7 18.02.2009 21:00:33

smackthat
Завсегдатай
Зарегистрирован: 18.02.2009
Сообщений: 32

Re: как выполнить запрос такой

Какой шустрый форум! Спасиба, то что хотел!

Неактивен

 

#8 18.02.2009 21:07:21

smackthat
Завсегдатай
Зарегистрирован: 18.02.2009
Сообщений: 32

Re: как выполнить запрос такой

Вы не подскажите где можно почитать подробнее по команде SELECT для новичков с примерами?

Неактивен

 

#9 18.02.2009 21:33:47

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: как выполнить запрос такой

Неактивен

 

#10 18.02.2009 21:40:25

smackthat
Завсегдатай
Зарегистрирован: 18.02.2009
Сообщений: 32

Re: как выполнить запрос такой

да, я тут был. А русского аналога нет?

Неактивен

 

#11 19.02.2009 00:27:47

smackthat
Завсегдатай
Зарегистрирован: 18.02.2009
Сообщений: 32

Re: как выполнить запрос такой

Еще возник такой вопрос. Каким образом можно подсчитать общее количество элементов. Например, у меня таблица news и в ней есть id - номер новости, как я уже писал. Так вот у меня не получается подсчитать сколько всего новостей есть в таблице. Я делаю так:

$res=mysql_query("SELECT id COUNT(id) FROM news);

Понимаю, что это уже и немного php, но всеже помогите оголить истину))

Тоесть результат запроса мы получили, а как теперь достать из переменной $res то самое количество?

Неактивен

 

#12 19.02.2009 00:36:53

coin
Гуру
Зарегистрирован: 15.07.2008
Сообщений: 66

Re: как выполнить запрос такой

$res = mysql_query("SELECT COUNT(*) FROM news");
$count = mysql_result($res, 0);

Неактивен

 

#13 19.02.2009 00:58:32

smackthat
Завсегдатай
Зарегистрирован: 18.02.2009
Сообщений: 32

Re: как выполнить запрос такой

спасибо!

Неактивен

 

#14 22.02.2009 21:50:55

smackthat
Завсегдатай
Зарегистрирован: 18.02.2009
Сообщений: 32

Re: как выполнить запрос такой

Каким образом можно задать какое количество символов выводить из поля. Допустим у меня в таблице news есть поле text - сама новость. Как составить запрос чтобы выводилось допустим только 25 первых символов поля text?

Неактивен

 

#15 22.02.2009 22:21:34

coin
Гуру
Зарегистрирован: 15.07.2008
Сообщений: 66

Re: как выполнить запрос такой

SELECT SUBSTR(`text`,1,25) `text` FROM `news`

Отредактированно coin (22.02.2009 22:22:10)

Неактивен

 

#16 22.02.2009 22:45:41

smackthat
Завсегдатай
Зарегистрирован: 18.02.2009
Сообщений: 32

Re: как выполнить запрос такой

не пойму почему возникает ошибка при таком запросе. Кроме текста пытаюсь выделить и остальные поля:

$res=mysql_query("SELECT SUBSTR(`text`,1,25) `text`,`id`,`date`,`time` FROM `antostudio`.`news`");

Неактивен

 

#17 22.02.2009 22:48:12

smackthat
Завсегдатай
Зарегистрирован: 18.02.2009
Сообщений: 32

Re: как выполнить запрос такой

О! заработало! А как отметить, что мне нужно SUBSTR(`text`,1,25) `text` и все остальные поля кроме `text` ? Всмысле чтобы не перечислять все оставшиеся поля вручную.

Отредактированно smackthat (22.02.2009 22:49:18)

Неактивен

 

#18 22.02.2009 22:54:25

coin
Гуру
Зарегистрирован: 15.07.2008
Сообщений: 66

Re: как выполнить запрос такой

SELECT *,SUBSTR(`text`,1,25) `text` FROM `news`


MySQL при этом отдаст все поля (включая полный вариант поля `text`), но при обращении через ассоциативный массив будет доступен только обрезаный вариант.

Отредактированно coin (22.02.2009 22:56:38)

Неактивен

 

#19 22.02.2009 23:20:50

smackthat
Завсегдатай
Зарегистрирован: 18.02.2009
Сообщений: 32

Re: как выполнить запрос такой

спасибо!!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson