Экранирование хинди в mysql - PullRequest
1 голос
/ 19 сентября 2019

Я пытаюсь получить данные из базы данных, используя MySQL, в таблице есть несколько записей на хинди, я хочу автоматически отфильтровать результаты хинди в листах Google, запустив SQL-запросы в листах Google.

Я был в состоянии извлечь данные в листы Google из базы данных, но не смог получить данные, отфильтрованные на хинди

select property, week,
  sum(Original_Stories) "Original Stories",
  sum(Wire_Stories) "Wire Stories",
  sum(Photo_Gallery) "Photo Gallery",
  sum(Video_Gallery) "Video Gallery",
from
  (select *, 
     case when a= "Original_Stories" then total end as "Original_Stories", 
     case when a= "Wire" then total end as "Wire_Stories", 
     case when a= "Photo" then total end as "Photo_Gallery", 
     case when a= "Video_Gallery" then total end as "Video_Gallery"
   from
     (select "Zee Hin" as property,
        yearweek(date_format(date_published,"%Y-%m-%d"),6) week,
        case
          when ((article_type like 'live_blog') or
                (article_type like '%article%' and agency_name like 'ज़ी न्यूज़ डेस्क') or
                (article_type like '%article%' and agency_name like 'एक्सक्लूसिव') or
                (article_type like '%article%' and agency_name like 'ज़ी मीडिया ब्‍यूरो') or
                (article_type like '%article%' and agency_name like 'Exclusive'))
            then "Original_Stories" 
          when (article_type like '%gallery%') then "Photo"
          when (article_type like '%video%') then "Video_Gallery"
          else 'Wire'
        end as a,
        count(distinct article_id) total,
        count(distinct date_format(date_published, "%Y-%m-%d")) days
      from
        zeenews_hindi
      where date_format(date_published, "%Y-%m-%d") >= '2018-12-30'
      group by 2,3
    ) temp
  ) agg
group by 1,2

Мне нужны данные для фильтров хинди

Ответы [ 2 ]

0 голосов
/ 21 сентября 2019

Поддерживается в MySQL 8

agency_name regexp '\\p{script=Devanagari}'

Здесь \ p представляет класс символов, соответствующий фильтру свойств символов.В данном случае Unicode-скрипт «Деванагари».Если это не охватывает все символы, которые вы хотите найти для хинди, вы можете добавить другие Unicode-скрипты, блоки или диапазоны.(Определение языка, используемого в тексте, mi amigo, это другое животное, n'est-ce pas?)

0 голосов
/ 19 сентября 2019

См. Это: Как я могу найти не-ASCII-символы в MySQL?

С MySQL вы можете обнаруживать не-латинские символы с этим типом запроса.

SELECT whatever
  FROM tableName 
 WHERE columnToCheck <> CONVERT(columnToCheck USING latin1)

Это работает путем сравнения вашего столбца с его собственным значением, отображаемым в latin1 (aka iso8859-1), набор символов, подходящий для Западной Европы и США.

Например, этот запрос

SELECT 'Some Hindi: ज़ी मीडिया ब्‍यूरो', CONVERT ('Some Hindi: ज़ी मीडिया ब्‍यूरो' USING LATIN1);

дает эти результаты

Some Hindi: ज़ी मीडिया ब्‍यूरो         Some Hindi: ??? ?????? ???????

Символы ? являются символами замены.

...