Автор Тема: операции с русскими значениями в mysql [РЕШЕНО]  (Прочитано 1323 раз)

Оффлайн romario

  • Участник
  • *
  • Сообщений: 621
    • ЮНИКС
есть CRM у ней кодировка:
mysql> SHOW VARIABLES LIKE "character_set_database";
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| character_set_database | utf8  |
+------------------------+-------+
1 row in set (0.00 sec)

в вэб интерфейсе вывожу информацию из одной таблици

select * from vtiger_picklist_dependency;
+----+-------+-------------+-------------+-------------+------------------------------+----------+
| id | tabid | sourcefield | targetfield | sourcevalue | targetvalues                 | criteria |
+----+-------+-------------+-------------+-------------+------------------------------+----------+
|  4 |     4 | cf_692      | cf_693      | odesskaya   | ["1","2","6","7"]            | NULL     |
|  5 |     4 | cf_692      | cf_693      | lunnaya     | ["1","2","3"]                | NULL     |
|  6 |     4 | cf_692      | cf_693      | mira        | ["1","3","6","7"]            | NULL     |
|  7 |     4 | cf_692      | cf_693      | tarhova     | [1]                          | NULL     |
|  8 |     4 | cf_694      | cf_695      | ???????     | ["1","2","5","43","3"]       | NULL     |
|  9 |     4 | cf_694      | cf_695      | ????????    | ["1","2","5","43","54","3"]  | NULL     |
| 10 |     4 | cf_694      | cf_695      | ??????      | ["1","2","90","43","54","3"] | NULL     |
| 11 |     4 | cf_694      | cf_695      | ????        | ["1","2","90","43","54","3"] | NULL     |
+----+-------+-------------+-------------+-------------+------------------------------+----------+

там где ?????? это русские символы

мне нужно их обработать вот таким образом:

UPDATE vtiger_picklist_dependency SET targetvalues = "[1,3,7]" WHE sourcevalue = "тархова";
результат
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHE sourcevalue = "тархова"' at line 1
я точно знаю что там значение "тархова"

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

« Последнее редактирование: 26.09.2012 15:20:31 от romario »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 166
    • Домашняя страница
В mysql
\СUTF8
Андрей Черепанов (cas@)

Оффлайн romario

  • Участник
  • *
  • Сообщений: 621
    • ЮНИКС
В mysql
\СUTF8

это он что делает, это мне перед запросом делать?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 166
    • Домашняя страница
В mysql
\СUTF8

это он что делает, это мне перед запросом делать?
Это внутренняя команда mysql. Для использования в скриптах нужно применять параметр --default-character-set=utf8:
[cas@forum ~]$ mysql forum -u altlinux_forum -pXXXXX -e 'select name from smf_boards limit 5;' -sN
??????? ??????
?????????? ?????? ??????
?????????????
FAQ ? ???????????
????????????
[cas@forum ~]$ mysql forum -u altlinux_forum -pXXXXX -e 'select name from smf_boards limit 5;' -sN --default-character-set=utf8
Правила форума
Обсуждение работы форума
Модераторская
FAQ и руководства
Документация
Андрей Черепанов (cas@)

Оффлайн romario

  • Участник
  • *
  • Сообщений: 621
    • ЮНИКС
вау:) спасибо, помогли.