Задавайте вопросы, мы ответим
Вы не зашли.
Есть таблица T1
ram ID
1014 Мб (DDR2-800 DDR2 SDRAM) 81
503 Мб (DDR2-800 DDR2 SDRAM) 82
247 Мб (DDR2-533 DDR2 SDRAM) 83
нужно значения поля ram скопировать в таблицу T2 но только значения типа
1014 Мб в один столбец ,а значения типа (DDR2-800 DDR2 SDRAM) в
другой. Смотрел строковые функции но чето не пошло.
Пока только учусь. Поделитесь идеями плиз.
Неактивен
Строковые функции - http://dev.mysql.com/doc/refman/5.0/en/ … tions.html
С помощью locate() определяете позицию открывающей скобки
С помощью substr() вырезаете подстроку - то что до открывающей скобки в первый столбец, остальное во второй
Неактивен
vasya написал:
Строковые функции - http://dev.mysql.com/doc/refman/5.0/en/ … tions.html
С помощью locate() определяете позицию открывающей скобки
С помощью substr() вырезаете подстроку - то что до открывающей скобки в первый столбец, остальное во второй
Спасибо что откликнулись.
С substr() я пробывал но затык у меня в том как в sql написать чтобы вырезать все что до первой скобки.
Я указвыал явно с 6-го символа но значения объема ОЗУ разные где-то 128 Mb а где-то 120000 Mb,
как написать чтобы скрипт автоматически это определял ?
Пробывал еще так
SELECT SUBSTRING(ram,(select LOCATE('(', ram) from T1 )) from T1
выдает #1242 - Subquery returns more than 1 row
Отредактированно oleg410 (10.02.2010 23:42:59)
Неактивен
substr(ram,1,locate(' (',ram)) - вырежет то, что до открывающей скобки
Неактивен
vasya написал:
substr(ram,1,locate(' (',ram)) - вырежет то, что до открывающей скобки
Супер, все пошло. Спасибо.
Отредактированно oleg410 (11.02.2010 20:56:15)
Неактивен
OOPS ! Засада !
Оказывается в таблице есть записи где в поле ram есть данные без скобок типа ID 82
и после substr(ram,1,locate(' (',ram)) поле ram в этих ячейках пустое.
Как поступить в таком случае ?
ram ID
1014 Мб (DDR2-800 DDR2 SDRAM) 81
503 Мб 82
247 Мб (DDR2-533 DDR2 SDRAM) 83
Неактивен
IF(LOCATE(), SUBSTR(), ram)
Неактивен
paulus написал:
IF(LOCATE(), SUBSTR(), ram)
спасибо за подсказку, только что получилось через
select substring_index(ram,'(',1) FROM T1
substring_index отрабатывает более коректно в моем случае
чем SUBSTR().
Неактивен