Перейти к содержимому


Условие "like" (содержит) в data_table


Сообщений в теме: 13

#1 ber

    Активный участник

  • Пользователи
  • PipPipPip
  • 234 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 20 Январь 2016 - 12:53

Как правильно сюда добавить условие f12222 не содержит 'uis'??

$lines = data_table("Звонки", "status=0 AND f6620>'$dat' AND f12230!=''", "all");

www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#2 ber

    Активный участник

  • Пользователи
  • PipPipPip
  • 234 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 20 Январь 2016 - 13:07

Разобрался сам, надо добавить AND f12222 NOT LIKE 'uis'
www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#3 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Январь 2016 - 13:46

Не совсем разобрались. Ваша конструкция по сути аналогична AND f12222 != 'uis'. А чтобы было именно "не содержит", нужно использовать AND f12222 NOT LIKE '%uis%'

#4 ber

    Активный участник

  • Пользователи
  • PipPipPip
  • 234 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 20 Январь 2016 - 13:53

Просмотр сообщенияCbCoder (20 Январь 2016 - 13:46) писал:

Не совсем разобрались. Ваша конструкция по сути аналогична AND f12222 != 'uis'. А чтобы было именно "не содержит", нужно использовать AND f12222 NOT LIKE '%uis%'

И снова огромное спасибо!
www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#5 f-jeka

    Активный участник

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 26 Декабрь 2017 - 09:47

Настраиваю форматирование по условию "содержит" и обнаружил что это условие чувствительное к регистру.
Возможно ли как-то убрать в настройках чувствительность к регистру, чтобы ячейка окрашивалась и при значении поля "Профсоюзная" и "профсоюзная" ?

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Декабрь 2017 - 11:22

Зайдите в режим эксперта и поменяйте strpos на strripos. Возможно, исправим потом в ревизии, чтобы сразу нечувствительность ставилась.

#7 f-jeka

    Активный участник

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 26 Декабрь 2017 - 13:13

Заменил strpos на strripos, но это не помогло. Все равно от регистра зависит.

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Декабрь 2017 - 17:11

А сохраняли то в режиме эксперта? Или обратно в конструктор переключались? Если в эксперте, то скиньте код.

#9 f-jeka

    Активный участник

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 27 Декабрь 2017 - 01:18

Все в режиме эксперта.
Код такой:
strripos($cur_line['Метро']['value'], 'Пятницкое')!==false or
strripos($cur_line['Метро']['value'], 'Митино')!==false or
strripos($cur_line['Метро']['value'], 'киевская')!==false

Код используется для форматирования ячейки.
Срабатывает только если и в коде и в самой ячейке регистр совпадает.

#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 27 Декабрь 2017 - 10:12

Все, понял. Надо использовать mb_strripos, т.к. она работает с юникодом, а обычная strripos - нет.

#11 f-jeka

    Активный участник

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 06 Январь 2018 - 16:59

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

#12 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 09 Январь 2018 - 09:22

Цитата

В новых версиях лучше сразу это учесть.

Да, уже поставили в очередь на исправление.

#13 f-jeka

    Активный участник

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 06 Июль 2020 - 11:51

А как то можно сделать запрос с like без учета регистра?
`Информация` like '%Вент%' - в таком варианте не работает в фильтрах

Сообщение отредактировал f-jeka: 06 Июль 2020 - 11:52


#14 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 24 Июль 2020 - 11:31

Странно, насколько знаю, mysql сравнивает строки без учета регистра. Сейчас проверил на таком же запросе как у вас - у меня фильтр сработал. Возможно это как то связано с конфигом mysql.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных