Помогите с MySQl

Деймос
На сайте с 10.09.2008
Offline
138
508

Есть таблица tovar в ней поле text в нем в некоторый товарах в конце есть знак "-" (убрать надо минус надо только в конце текста), если кто может напишите запрос как его убрать, просто очень не селен в MySQL. Всем заранее спасибо.

DB
На сайте с 24.08.2006
Offline
57
#1

Тут одним MySQL не отделаешься.. Нужно прочитать данные из поля (тем же PHP) обработать его регулярным выражением и записать обратно..

А если это единожды нужно сделать можно воспользоваться phpmyadmin..

Безлимитный хостинг за 1,5€ в месяц + 20€ бонус (http://www.dominant.lt/p.php?13985&goto=aHR0cDovL2RvbWluYW50Lmx0L2hvc3RpbmcuaHRt)
[Удален]
#2
<?php

$query = "SELECT text FROM tovar WHERE text LIKE('%-')";
while ( $item = mysql_query ( $query ) ) {
$text = preg_replace ( "/(.*)[-]/si", "$1", $item ['text'] );
mysql_query ( "UPDATE tovar SET text = '" . $text . "' WHERE text = '" . $item ['text'] . "'" );
}

?>

чёт типа такого только не проверял ничё, побыстренькому накидал не глядя ) доведешь до ума думаю сам =)

СКОРПИОН
На сайте с 05.01.2006
Offline
120
#3

Деймос, можно в лоб так:


UPDATE tovar SET text = SUBSTRING(text, 0, LENGTH(text) - 1)
WHERE RIGHT(text, 1) = '-';
• Контекстные ссылки с внутренних страниц навсегда (/ru/forum/370882) • Качественные сайты для заработка на контекстной рекламе и ссылках
FeoOne
На сайте с 27.12.2008
Offline
32
#4

UPDATE `tovar` SET `text` = TRIM(TRAILING '-' FROM `text`)

Хелпзонович
На сайте с 15.06.2005
Offline
133
#5

Не забудьте сначала сделать бэкап


update tovar set tovar.text = Left(tovar.text,Length(tovar.text)-1) WHERE Right(tovar.text,1)='-'
Вы там держитесь! Хорошего вам настроения. Здоровья.
[Удален]
#6
<?php

$server = "localhost";
$login = "root";
$password = "";
$database = "xread_web";

mysql_connect ( $server, $login, $password );
mysql_select_db ( $database );
mysql_query ( "SET NAMES cp1251" );

$query = mysql_query("SELECT text FROM test WHERE text LIKE ('%-')");
while ( $item = mysql_fetch_array ( $query ) ) {
$text = preg_replace ( "/(.*)[-]/si", "$1", $item ['text'] );
echo $text;
mysql_query ( "UPDATE test SET text = '" . $text . "' WHERE text = '" . $item ['text'] . "' LIMIT 1" );
}

?>

вот рабочий абсолютно как те надо )

СКОРПИОН
На сайте с 05.01.2006
Offline
120
#7
FeoOne:
UPDATE `tovar` SET `text` = TRIM(TRAILING '-' FROM `text`)

Точно, вот так удобнее всего.

Деймос
На сайте с 10.09.2008
Offline
138
#8

Всем ОГРОМНОЕ СПАСИБО! Сделал как предложил FeoOne и СКОРПИОН и все получилось успешно! Еще раз спасибо!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий