1НTL всё будет нормально, 50 столбцов это не критично. просто без надобности в селектах не выводи все столбцы(select *).
Как дописать текст во всех строках (varchar)? Что то подобное как на PHP: PHP: $s.='тест'; $s=$s.'тест';
Пример. Code: mysql> CREATE TABLE `zf` (`i` INT(5), `iz` INT(5) ZEROFILL, `iuz` INT(7) ZEROFILL); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO `zf` VALUES (1, 2, 3), (11, 22, 33), (111, 222, 333), (1, -2, -3); Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> select * from zf; +------+-------+---------+ | i | iz | iuz | +------+-------+---------+ | 1 | 00002 | 0000003 | | 11 | 00022 | 0000033 | | 111 | 00222 | 0000333 | | 1 | 00000 | 0000000 | +------+-------+---------+ 4 rows in set (0.00 sec)
В БД структура столбца "int(9)", как я думал это обозначает максимальную длину цифры (т.е. 999999999) Но у меня в БД появилась запись где этот столбец равен 1000000000 Как это может быть? И как это исправить чтобы это число было только < 1000000000?
Че это за кал "#1273 - Unknown collation: '' "? Импортирую дамп БД от воблы ч/з PHPMyAdmin. дамп весит около 15 МБ, но в PHP установлен гораздо больший лимит. Раньше эту базу от этого проекта спокойно импортировал на другом хосте.
Спасибо, но последний пост там: Так как же ее установить? Хотя, вроде, сайт итак работает, просто, небось, не до конца.
Я с таким не сталкивался, но предположу что в дампе надо прописать подобно вот такому: Code: CREATE TABLE `table_name` ( `id` int(11) NOT NULL default '0', `a` int(2) NOT NULL default '0', `b` int(2) NOT NULL default '0', `c` int(2) NOT NULL default '0', `d` int(2) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM [B]DEFAULT CHARSET=cp1251[/B];
Здравствуй %username%! У меня возникла проблема при составлении запроса в бд,вот код: Code: declare @i int set @i = 1 while(@i != 0) begin update dbo.TEILNEHMER set Rechnungssumme= isnull((select count(*)*100 from dbo.TEILNEHMER t join dbo.VeranstaltungsTeilnahme vt on t.teilnehmer_id=vt.teilnehmer_id join dbo.VERANSTALTUNG v on vt.veranstaltung_id=v.veranstaltung_id group by t.teilnehmer_id,typ having typ='Workshop' and t.teilnehmer_id = @i),0) where teilnehmer_id = @i if (t.teilnehmer_id is Null) then @i=0 else set @i = @i + 1 end if; end Проблема возникает с if оператором,пишет что проблема с синтаксом и подчёркивает t.teilnehmer_id . Рад любой помощи
значение колонки t.teilnehmer_id вам нужно поместить в переменную и затем юзать в ифе. В TSQL нет IF/THEN, есть Code: IF (cond) ' один оператор ELSE ' один оператор IF (cond2) BEGIN ' несколько операторов END ELSE BEGIN ' несколько операторов END
Спасибо krypt3r, буду знать,к сожаление нужно было как можно быстрее регить вопрос,поэтому пошёл по методу ненормативного кода и вот что вышло Code: go declare @i int set @i = 1 declare @j int set @j=0 while(@i !=0 ) begin set @j=(Select (select count(distinct(day(datum))) from dbo.VERANSTALTUNG v join dbo.VeranstaltungsTeilnahme vt on v.veranstaltung_id = vt.veranstaltung_id join dbo.Teilnehmer t on t.teilnehmer_id = vt.teilnehmer_id where t.teilnehmer_id=@i and typ !='Workshop')) update dbo.TEILNEHMER set Rechnungssumme= case when @j=1 then 300 when @j=2 then 600 when @j=3 then 800 else 0 end + isnull((select count(*)*100 from dbo.TEILNEHMER t join dbo.VeranstaltungsTeilnahme vt on t.teilnehmer_id=vt.teilnehmer_id join dbo.VERANSTALTUNG v on vt.veranstaltung_id=v.veranstaltung_id group by t.teilnehmer_id,typ having typ='Workshop' and t.teilnehmer_id = @i),0) where teilnehmer_id =@i set @i = @i + 1 if (select teilnehmer_id =@i from dbo.TEILNEHMER where teilnehmer_id = @i) is null set @i=0 end; Переписал с подачи Вашей подсказке,и всё заработало,но уже к сожалению прийдёться оставить тот кусок кода. С меня плюс.
помогите написать по человечески) знаю что извращенец) Code: (select catname from category where id='".$db->secure($_GET['pid'])."'), (select catname from category where id=(select pid from category where id='".$db->secure($_GET['pid'])."')), (select catname from category where id=(select pid from category where id=(select pid from category where id='".$db->secure($_GET['pid'])."'))), (select catname from category where id=(select pid from category where id=(select pid from category where id=(select pid from category where id='".$db->secure($_GET['pid'])."')))) с join просто проблемы есть небольшие. таблица id pid catname таблица в виде дерева(Gifts ты в теме на тебя большая надежда) надо получить catname каждого уровня(pid отвечает за id родителя)
Seravin Правда не уверен какие индексы нужно использовать Code: SELECT a.catname, b.catname, c.catname, d.catname FROM category a LEFT JOIN category b ON a.id=b.pid LEFT JOIN category c ON b.id=c.pid LEFT JOIN category d ON c.id=d.pid WHERE a.id = 1; Поправка насчет индексов - достаточно PRIMARY на столбце ID и cоставного на PID, ID Если нужно выводить столбцы со всеми уровнями вложенности, то можно добавить условие "AND d IS NOT NULL"