Всё истинное богатство - биологическое.
Вчера делал шабашку, писал челу сайт (PHP+MySQL). Чел, кроме всего прочего, претендует на то, чтобы научиться Web-программированию.



Разбирали CONCAT (ну надо было ему ко всем полям варчарным в табличке дописать одно и то же значние). Сегодня с криком о помощи ("ты будешь смеяться моей <ВЦ>, но опять не получается(((((((((((

почему не записал вчера ((((((((((
" ) пишет мне по асе следующее:



UPDATE `catalog` CONCAT (c_name,"<br /><h1>..." )



:D :D :D



Думаю, нет, если сам не напишет один раз, ничему же не научится, блин. Ругаю его, шлю читать мануал... Он мне такое:



UPDATE `catalog` CONCAT (c_name,"<br /><h1>..." ) AS `c_name`



Терпение моё на исходе. Промываю мозги на счёт синтаксиса UPDATE, а в результате...



UPDATE `catalog` SET CONCAT (c_name,"<br /><h1>..." )



:hlop:



Слов нет, одни эмоции... Такие вот у нас Web-программисты водятся...


@настроение: ща засмеюсь!!

Комментарии
21.12.2005 в 22:44

Это у меня второй вопрос в моём тесте на общее знание SQL для претендентов на вакансию квалифицированного специалиста - увеличить на 1 значение целого поля в таблице для тех записей, где оно меньше среднего.

Правильно пишет один из ста. Но это цветочки. Чёрт с ним, с SQL. На вопрос, сколько будет 2/9-1/6 за 20 (!!!) секунд отвечает в лучшем случае один из десяти. А половина вообще не может это сделать без калькулятора. Хотя, я не уверен, что и с ним у них получится.
21.12.2005 в 23:51

Всё истинное богатство - биологическое.
Уй, меня аж заинтриговало.



Навскидку, уж не будет ли



UPDATE table_of_vals SET val = val + 1 WHERE val > AVG(val)



?



Единственно, в чём сомневаюсь, будет ли аггрегатная функция работать в UPDATE'е... (пошёл проверять)





А второе... Знаешь (ничего, что я на "ты" так сразу?), я никогда устно не умел хорошо считать :)

Первое что пришло в голову, 9*6 = 54, 2*6/54 - 1*9/54 = 3/54. А вот чтобы разделить 54 на 3 без калькулятора меня не хватило... :(
22.12.2005 в 00:13

Всё истинное богатство - биологическое.
Нет, не хочет так :(



Тогда только двумя запросами. Сначала узнать среднее SELECT'ом через AVG(val),

а потом обычным UPDATE'ом как было указано ранее.



---



Кстати, сайт выдавал ошибку, когда пытался добавить мессагу с полным выражением SELECT :(

Типа "не могу обнаружить верную версию diary.php" или нечто подобное. То ли баг, то ли фича,

не дающая делать injection'ы... Пусть админы разбираются.
22.12.2005 в 03:42

Да, именно так

UPDATE table SET val=val+1 WHERE val<(SELECТ AVG(val) FROM table)



А насчет второго примера - тенденция однако. Современная электроника разжижает мозги, и вместо того, чтобы полагаться только на свои силы и память, люди рассчитывают невесть на что - кто на всемогущие компьютеры, которые якобы думают за людей, кто на интернет - гигантскую кладезь информации, где они всё равно ничего не могут найти - пойди-ка найди иголку в стоге сена, а кто и вообще по-старинке - просто на "авось".



Ну нет воображения

Теперь у молодёжи,

Таблицу умножения

Запомнить уж не может.

Мы лезем вон из кожи

Вплоть до изнеможения,

Чтоб шесть на шесть умножить -

Такое напряжение

Наш разум уничтожит.

Науки достижение

Решить пример поможет -

Под Windows приложение

Нам шесть на шесть умножит,

И это положение

Вещей меня тревожит.

У нас на вооружении

Такое снаряжение,

Что нет соображения,

Нет самоуважения,

Прости за выражение,

Одно лишь торможение

До головокружения,

Мозгов лишь разжижение -

Какое унижение!

Да что там умножение!

Ведь даже и сложения

Осилить мы не сможем,

Мы терпим поражение,

Хотя пример не сложен.

:)