Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: runtime в Aug 27, 2013, 20:11



Титла: Mysql Update заявка
Публикувано от: runtime в Aug 27, 2013, 20:11
Седя и се чудя и се мая ама не ми идва в акъла как да стане завката и ще моля за малко помощ!

Та имам следната таблица


id------a2z-------name------

Как аджеба да вкарам първите букви от name в a2z..

Демек от name=BlqBlq в a2z=B

1-вата буква ми е ясна select  LEFT(name, 1) from table    ама нещо не мога да го обвържа с ъпдейта. Сигурен съм че трябва да ползвам обеденение ама не ми стига акъла след днещния тежък ден как да го сътворя та моля за малко помощ


Титла: Re: Mysql Update заявка
Публикувано от: remotexx в Aug 27, 2013, 20:58
т.е. нещо такова ли търсиш
Код
GeSHi (SQL):
  1. UPDATE tbl SET a2z = LEFT(name, 5)

-- и понеже откакто ги купиха оракъл малко им позанемарена помощ-та та не можах да рабера какво ще върне LEFT('123', 5)
пробвай и така:
Код
GeSHi (SQL):
  1. UPDATE tbl SET a2z = LEFT(name, LEAST(5, CHAR_LENGTH(name))


Титла: Re: Mysql Update заявка
Публикувано от: b2l в Aug 27, 2013, 21:04
Код
GeSHi (SQL):
  1. CREATE DEFINER=`root`@`localhost` PROCEDURE `insertLetterFromName`()
  2. BEGIN
  3.   DROP TEMPORARY TABLE IF EXISTS tmp_tbl_letters;
  4.  CREATE TEMPORARY TABLE tmp_tbl_letters (
  5. SELECT table_name.id, LEFT (table_name.name, 1) AS name FROM table_name
  6. );
  7.  
  8. UPDATE table_name
  9. INNER JOIN tmp_tbl_letters ON table_name.id = tmp_tbl_letters.id
  10. SET table_name.a2z = tmp_tbl_letters.name
  11. WHERE table_name.id = tmp_tbl_letters.id;
  12.  
  13. END


Титла: Re: Mysql Update заявка
Публикувано от: runtime в Aug 28, 2013, 11:54
@B2L - благодарско!


@remotexx - Тъкмо това, ама така не става :)  [_]3 Мерси и на теб за отговора.