SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.11.2012 20:32:05

Petr
Завсегдатай
Откуда: Москва
Зарегистрирован: 19.10.2011
Сообщений: 49

2 Запроса на генерацию случайных значений

Добрый день, нужно для для столбца  "SKU" в этой таблице

oc_product` (`product_id`, `model`, `sku`, `upc`, `location`, `quantity`, `stock_status_id`,
сгенирировать случайное 5-ти значное число которое не будет одинаковым, заменяя все существующие.

Еще нужно в этой таблице oc_product_description` (`product_id`, `language_id`, `name`, `description`) в столбце description. найти слово "интерИсующем" на  "интерЕсующем".


Работаю над Сайтом http://tuningdom.ru/, Ищу гуру которого можно спросить обо Всем!

Неактивен

 

#2 03.11.2012 22:09:13

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5840

Re: 2 Запроса на генерацию случайных значений

Petr написал:

Добрый день, нужно для для столбца  "SKU" в этой таблице

oc_product` (`product_id`, `model`, `sku`, `upc`, `location`, `quantity`, `stock_status_id`,
сгенирировать случайное 5-ти значное число которое не будет одинаковым, заменяя все существующие.

update `oc_product` set `sku`=round((rand()+1)*10000);

Но при этом могут при этом могут появиться одинаковые значения, чтобы от них избавиться
update `oc_product` t,(select `sku` from `oc_product` group by 1 having count(*)>1) t1
set t.`sku` = round((rand()+1)*10000) where t.`sku` = t1.`sku`;

При необходимости операцию повторить.


Petr написал:

Еще нужно в этой таблице oc_product_description` (`product_id`, `language_id`, `name`, `description`) в столбце description. найти слово "интерИсующем" на  "интерЕсующем".

http://dev.mysql.com/doc/refman/5.5/en/ … on_replace

Неактивен

 

#3 04.11.2012 02:41:48

Petr
Завсегдатай
Откуда: Москва
Зарегистрирован: 19.10.2011
Сообщений: 49

Re: 2 Запроса на генерацию случайных значений

Спасибо за советы. Вот воник вопрос я использовал для замены вот эту комманду

UPDATE `oc_product_description`
   SET `description`= REPLACE(`description`, 'интерисующем', 'интересующем');

А если мне нужно заменить предлог "о" на "об" такой способ замены поменятет все буквы о в словах?


Работаю над Сайтом http://tuningdom.ru/, Ищу гуру которого можно спросить обо Всем!

Неактивен

 

#4 04.11.2012 10:26:31

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5840

Re: 2 Запроса на генерацию случайных значений

Petr написал:

А если мне нужно заменить предлог "о" на "об" такой способ замены поменятет все буквы о в словах?

Да. Но вы можете заменить " о " на " об ".

Неактивен

 

#5 04.11.2012 12:08:21

Petr
Завсегдатай
Откуда: Москва
Зарегистрирован: 19.10.2011
Сообщений: 49

Re: 2 Запроса на генерацию случайных значений

vasya написал:

Petr написал:

А если мне нужно заменить предлог "о" на "об" такой способ замены поменятет все буквы о в словах?

Да. Но вы можете заменить " о " на " об ".

Дак в том то и дело что мне нужно что бы замены букв в словах не происходило, только союзы нужно поменять.


Работаю над Сайтом http://tuningdom.ru/, Ищу гуру которого можно спросить обо Всем!

Неактивен

 

#6 04.11.2012 12:18:26

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5840

Re: 2 Запроса на генерацию случайных значений

Чем союз "о" отличается от буквы "о"?
Сравните "о" и " о ".

Неактивен

 

#7 05.11.2012 20:43:25

Petr
Завсегдатай
Откуда: Москва
Зарегистрирован: 19.10.2011
Сообщений: 49

Re: 2 Запроса на генерацию случайных значений

Скажите а как в таблице "make" в столбце make сделать, что бы все слова начинались с заглавной буквы а после прописные? Сейчас там и верхний и нижний регистр.


Работаю над Сайтом http://tuningdom.ru/, Ищу гуру которого можно спросить обо Всем!

Неактивен

 

#8 05.11.2012 20:51:09

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2421

Re: 2 Запроса на генерацию случайных значений

Ну это разве что функцию написать, в которой в цикле пробежаться по значению столбца make, выискивать там слова (ну допустим по признаку, что они "окантованы" пробелами, точками, запятыми и пр. ), ну и дальше уже делать первый символ в слове прописной буквы, а остальные строчной. Но делать это на mysql очень неудобно, я бы предолжил скорее сделать это на полноценном процедурном языке программирования - php/python/c++ и иже с ними.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#9 05.11.2012 21:10:04

Petr
Завсегдатай
Откуда: Москва
Зарегистрирован: 19.10.2011
Сообщений: 49

Re: 2 Запроса на генерацию случайных значений

deadka написал:

Ну это разве что функцию написать, в которой в цикле пробежаться по значению столбца make, выискивать там слова (ну допустим по признаку, что они "окантованы" пробелами, точками, запятыми и пр. ).

Там всего 1 слово. Это марка машины типа Honda


Работаю над Сайтом http://tuningdom.ru/, Ищу гуру которого можно спросить обо Всем!

Неактивен

 

#10 05.11.2012 21:16:16

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5840

Re: 2 Запроса на генерацию случайных значений

Если содержимое столбца всего одно слово, то просто переведите первый символ в верхний регистр.
http://dev.mysql.com/doc/refman/5.5/en/ … tions.html

Неактивен

 

#11 05.11.2012 21:24:19

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: 2 Запроса на генерацию случайных значений

Petr написал:

deadka написал:

Ну это разве что функцию написать, в которой в цикле пробежаться по значению столбца make, выискивать там слова (ну допустим по признаку, что они "окантованы" пробелами, точками, запятыми и пр. ).

Там всего 1 слово. Это марка машины типа Honda

Все описанные вами задачи - должны быть решены на уровне приложения. Конечно что то можно и с помощью mysql, но имхо, это больше похоже на костыли

Неактивен

 

#12 06.11.2012 01:42:12

Petr
Завсегдатай
Откуда: Москва
Зарегистрирован: 19.10.2011
Сообщений: 49

Re: 2 Запроса на генерацию случайных значений

Shopen написал:

Petr написал:

deadka написал:

Ну это разве что функцию написать, в которой в цикле пробежаться по значению столбца make, выискивать там слова (ну допустим по признаку, что они "окантованы" пробелами, точками, запятыми и пр. ).

Там всего 1 слово. Это марка машины типа Honda

Все описанные вами задачи - должны быть решены на уровне приложения. Конечно что то можно и с помощью mysql, но имхо, это больше похоже на костыли

Да дело в том что они импортируются из прайса подбором по словарю, а в прайсах кто как хочет тот так и пишет. Приходится держать значения с заглавной буквы и в верхнем регистре.


Работаю над Сайтом http://tuningdom.ru/, Ищу гуру которого можно спросить обо Всем!

Неактивен

 

#13 06.11.2012 01:47:00

Petr
Завсегдатай
Откуда: Москва
Зарегистрирован: 19.10.2011
Сообщений: 49

Re: 2 Запроса на генерацию случайных значений

vasya написал:

Если содержимое столбца всего одно слово, то просто переведите первый символ в верхний регистр.
http://dev.mysql.com/doc/refman/5.5/en/ … tions.html

Дело в том что с начало нужно их перевести в нижний это я нашел, т.к. они там все в разном регистре. А потом уже первую букву, только я вот что то не могу найти где эта комманда? с английским не очень..


Работаю над Сайтом http://tuningdom.ru/, Ищу гуру которого можно спросить обо Всем!

Неактивен

 

#14 06.11.2012 01:57:09

Petr
Завсегдатай
Откуда: Москва
Зарегистрирован: 19.10.2011
Сообщений: 49

Re: 2 Запроса на генерацию случайных значений

Вроде решил проблему вот так

UPDATE tb_Company
SET CompanyIndustry = CONCAT(UCASE(LEFT(CompanyIndustry, 1)),
                             SUBSTRING(CompanyIndustry, 2));


Работаю над Сайтом http://tuningdom.ru/, Ищу гуру которого можно спросить обо Всем!

Неактивен

 

#15 06.11.2012 02:30:21

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2421

Re: 2 Запроса на генерацию случайных значений

Посмотрите здесь.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#16 09.11.2012 03:09:59

Petr
Завсегдатай
Откуда: Москва
Зарегистрирован: 19.10.2011
Сообщений: 49

Re: 2 Запроса на генерацию случайных значений

Проблема возникла, пытаюсь выполнить запрос вида

UPDATE oc_make SET make = REPLACE(make,‘Dodge’,‘0);

мне пишет
[SQL] UPDATE oc_make SET make = REPLACE(make,‘Dodge’,‘0);
[Err] 1054 - Unknown column '‘Dodge’' in 'field list'


Я хочу заменить все записи Dodge в таблице oc_make, на 0. Но получаю вот такой вот отказ. Записи Dodge там 100% есть.


Работаю над Сайтом http://tuningdom.ru/, Ищу гуру которого можно спросить обо Всем!

Неактивен

 

#17 09.11.2012 04:17:47

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: 2 Запроса на генерацию случайных значений

А почему у вас такие кавычки? В таких кавычках оборачиваются имена столбцов/таблиц и пр

UPDATE oc_make SET make = REPLACE(make,'Dodge','0');

Отредактированно Shopen (09.11.2012 04:18:34)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson