Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySQL Помогите составить запрос

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Открыть новую тему     Написать ответ в эту тему

Vint



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
UPDATE Orders
 SET Quantity=3,
 WHERE OrderID=1001;
 to use near 'WHERE OrderID=1001' at line 3
здесь я даже пробовал WHERE 'OrderID'='1001'; и WHERE 'OrderID'=1001;
все равно ошибка в этой строке

запятую после Quantity=3 надо убрать!

Всего записей: 218 | Зарегистр. 04-11-2001 | Отправлено: 11:26 10-02-2008
Zeus999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
все спасибо сам виноват "," там не нужна после SET Quantity=3

Всего записей: 28 | Зарегистр. 19-12-2007 | Отправлено: 11:27 10-02-2008
roddik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zeus999
`OrderID`
 
есть небольшая разница между обычной одинарной скобкой ' и косой ` названия переменных надо брать в косые, их значения - в обычные (числовые значения можно без скобок)

Всего записей: 233 | Зарегистр. 27-01-2007 | Отправлено: 13:57 10-02-2008
Zeus999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ок спасибо roddik а скажи так положено в последних версиях MySQL? Просто у меня наверное материал устарел.

Всего записей: 28 | Зарегистр. 19-12-2007 | Отправлено: 10:07 11-02-2008
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MySQL 4-5(и ниже, лень проверять) интепретируют `...` последовательности в качестве имени поля, таблицы.
Разница между апострофом(') и и грависом(`) заключается именно в этом, и она очень существенна..

----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 11:34 11-02-2008
Zeus999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Еще вопрос:
mysql> DELETE Orders
    -> FROM books, orders
    -> WHERE books.bookID=orders.bookID
    -> AND books.bookName='How get 1 million dollars';
Query OK, 1 row affected (0.08 sec)
Вроде все ок потом смотришь таблицу и:
mysql> select * from books;
+--------+-----------------------------------+---------+
| bookID | BookName                          | InStock |
+--------+-----------------------------------+---------+
|    101 | Noncomformity: Writing on Writing |      42 |
|    102 | The Shipping News                 |      47 |
|    103 | Hell's Angels                     |      43 |
|    104 | Letters to a Young Poet           |      52 |
|    105 | A Confederacy of Dunces           |      36 |
|    106 | One Hundred Years of Solitude     |      48 |
|    107 | How get 1 million dollars         |       6 |
+--------+-----------------------------------+---------+
7 rows in set (0.00 sec)
 
почти такой же но без соединенных таблиц метод пробовал, там вишет что 0 строк задействовано и в таблице не связанной тоже остается значение которое пытаешься удалить.

Всего записей: 28 | Зарегистр. 19-12-2007 | Отправлено: 12:39 11-02-2008
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
mysql> DELETE Orders - что за бред?  
    -> FROM books, orders  
    -> WHERE books.bookID=orders.bookID  
    -> AND books.bookName='How get 1 million dollars';
 

Так должен выглядеть запрос:

Код:
DELETE FROM books, orders WHERE books.bookID=orders.bookID  AND books.bookName='How get 1 million dollars';
 


----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 13:06 11-02-2008
Zeus999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
)) точно блин БРЕД - СПАСИБО Brodyaga наверное спать хотелось
 
 
 
Добавлено:
а теперь что он хочет от меня?
mysql>  DELETE FROM books, orders WHERE books.bookID=orders.bookID AND books.bookName='How get 1 million dollars';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the r
ight syntax to use near 'WHERE books.bookID=orders.bookID AND books.bookName='How get 1 million dollars'' at line 1

Всего записей: 28 | Зарегистр. 19-12-2007 | Отправлено: 14:47 11-02-2008
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
DELETE FROM `books`, `orders` WHERE `books`.`bookID`=`orders`.`bookID` AND `books`.`bookName`='How get 1 million dollars';

Может быть так. Ещё бы вспомнить, поддерживается ли в MySQL перекрестное удаление..

----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 14:53 11-02-2008
Zeus999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ПРОСЕК ФИШКУ - в названиях полей таблиц bookID и BookID регистры первых букв не совпадают... наверно))
 
Добавлено:
спасибо за помощь теперь даже вот что получается:
mysql> DELETE LOW_PRIORITY FROM Orders
    -> WHERE BookID=103
    -> ORDER BY DateOrdered DESC
    -> LIMIT 2;
Query OK, 2 rows affected (0.08 sec)

Всего записей: 28 | Зарегистр. 19-12-2007 | Отправлено: 14:56 11-02-2008
NDRST



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пытаюсь осознать SQL...
Есть таблица main_table
id field
1 val1  
1 val2
2 val2
2 val2
2 val1
3 val2
4 val1
 
как посчитать количество записей для каждого id со значением 2 и со значением 1. То есть получить выборку:
id number1 number2
1 1 1
2 1 2
3 0 1
4 1 0
 
Делаю так:
SELECT id, IF(field='val1','kind1','kind2') as field_kind, count(*) as field_num
FROM main_table
GROUP BY id, field_kind
 
но получается немного не то:
id field_kind field_num
1 kind1 1
1 kind2 1
2 kind1 1
2 kind2 2
3 kind1 0
3 kind2 1
и т.д.
То есть по 2 записи для каждого id. А надо по одной. Как сделать запрос, чтоб получилось то что нужно?
 
(P.s. в действительности проверка немного сложнее чем IF(field='val1').. только что увидел.. что тут не за чем было это..)

Всего записей: 44 | Зарегистр. 10-06-2005 | Отправлено: 17:16 21-02-2008 | Исправлено: NDRST, 17:22 21-02-2008
beans

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
как посчитать количество записей для каждого id со значением 2 и со значением 1

 
select count(id )
from Таблица
where id =2
 
select count(id )
from Таблица
where id =1

Всего записей: 19 | Зарегистр. 21-02-2008 | Отправлено: 15:31 22-02-2008
nuller



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
select id,count(*) from table where id in(1,2) group by id
 
----------
(removed)




Возможность подписи будет доступна по достижению статуса мембер средствами форума /Cheery/

Всего записей: 42 | Зарегистр. 23-01-2003 | Отправлено: 18:48 22-02-2008 | Исправлено: Cheery, 21:38 22-02-2008
tolyn77



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет, Всем
подскажите пожалуйста, я делаю запрос в базе
mysql> SELECT * FROM ttax_feb where Year="09" and day >="10" and day <="12" order by Day,Hour,Min;
и он выдает ошибку
ERROR 1032: Can't find record in 'ttax_feb'
я так понимаю что он не обнаружил записей, как можно сделать запрос что бы не было ошибок даже если записи отсутствуют?
заранее благодарен

Всего записей: 1500 | Зарегистр. 07-09-2004 | Отправлено: 23:32 17-02-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tolyn77

Цитата:
я так понимаю что он не обнаружил записей

он? если нет записей, то выдаст просто пустой ответ
запустите проверку таблицы на целостность
isamchk


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:37 17-02-2009
tolyn77



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
"он?" запрос
блин убил весь 9 год е мое

Всего записей: 1500 | Зарегистр. 07-09-2004 | Отправлено: 20:34 18-02-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tolyn77

Цитата:
блин убил весь 9 год е мое

таблица, все же, была повреждена?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:36 18-02-2009
tolyn77



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да одну ошибку нашел, но  он раньше если  
SELECT * FROM ttax_feb where Year="09" and day >="12" and day <="12" order by Day,Hour,Min;  
были данные а сейчас их нет

Всего записей: 1500 | Зарегистр. 07-09-2004 | Отправлено: 21:36 18-02-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tolyn77

Цитата:
были данные а сейчас их нет


Цитата:
SELECT * FROM ttax_feb where Year="09" and day >="12" and day <="12" order by Day,Hour,Min;  

может
SELECT * FROM ttax_feb where Year="09" and day="12" order by Day,Hour,Min;
и какой то неправильный формат хранения дат.. почему бы не воспользоваться соответствующим типом данных?
опять же, теперь такую ошибку выдает?

Цитата:
ERROR 1032: Can't find record in 'ttax_feb'  



----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:38 18-02-2009
tolyn77



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а сейчас почему то вообще странная ситуация делаю
mysql> insert into ttax_feb values (date_format(now(),'%y'), '19', '08', '30', 'out', '238', '003006', time_to_sec('00:00:14'), '243603');
Query OK, 1 row affected (0.00 sec)
а потом
mysql> SELECT * FROM ttax_feb where Year="09" and day ="19" order by Day,Hour,Min;
Empty set (0.44 sec)
Cheery
что бы это значило?
по идеи я добавил значения нуда же в пустую базу, они по селекту должны появиться

Код:
 
mysql> desc ttax_feb;
+-----------+----------------------+------+-----+---------+-------+
| Field     | Type                 | Null | Key | Default | Extra |
+-----------+----------------------+------+-----+---------+-------+
| Year      | tinyint(2) unsigned  | YES  |     | NULL    |       |
| Day       | tinyint(2) unsigned  |      | MUL | 0       |       |
| Hour      | tinyint(2) unsigned  | YES  |     | NULL    |       |
| Min       | tinyint(2) unsigned  | YES  |     | NULL    |       |
| Direction | enum('in','out')     |      |     | in      |       |
| FromNum   | varchar(6)           | YES  |     | NULL    |       |
| ToNum     | varchar(6)           | YES  |     | NULL    |       |
| Duration  | smallint(5) unsigned | YES  |     | NULL    |       |
| Phone     | tinytext             | YES  |     | NULL    |       |
+-----------+----------------------+------+-----+---------+-------+
9 rows in set (0.00 sec)
 

мне кажется что то с таблицей ttax_feb, я хоть правильно ремонтировал "./isamchk -r"?

Всего записей: 1500 | Зарегистр. 07-09-2004 | Отправлено: 08:40 19-02-2009 | Исправлено: tolyn77, 12:18 19-02-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySQL Помогите составить запрос


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru