Нужна подсказка проверки в поле Сущность Аякс на пустоту

Все вопросы/проблемы по установке и использовании.
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Нужна подсказка проверки в поле Сущность Аякс на пустоту

Сообщение alcompstudio »

Добрый день!

Есть поле Сущность Аякс (множественный выбор), которое используется для автоматизации связывания записей по MySQL запросу (конструкция условия там типа id in ([5098]) )

Если поле 5098 заполнено (хотя бы 1 значение), то автоматизация работает. Но если поле пустое, то вылетает ошибка MySQL. Я так понял, нужно добавить в условие проверку на "пустоту". Как правильно поставить проверку, какие операторы/функции в MySQL за это отвечают?

Пробовал

Код: Выделить всё

id in ([5098]) and [5098] !=''
, но познаний не хватает, как правильно написать?
alexinc
Сообщения: 422
Зарегистрирован: 03 мар 2022, 21:40
Имя: Alex
Откуда: Россия
Контактная информация:

Re: Нужна подсказка проверки в поле Сущность Аякс на пустоту

Сообщение alexinc »

Может быть так:
id in ([5098]) and [5098] NOT NULL
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Нужна подсказка проверки в поле Сущность Аякс на пустоту

Сообщение alcompstudio »

alexinc писал(а): 05 июл 2022, 15:04 Может быть так:
id in ([5098]) and [5098] NOT NULL
тоже ошибка

Код: Выделить всё

Database Error: 1064 - 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 '89 NOT NULL' at line 1
Query: select e.id , ( (select ((func100.parent_item_id)) from app_entity_88 func100 where func100.id>0 and func100.id=e.parent_item_id limit 1) ) as field_5940, (e.parent_item_id) as field_5947 from app_entity_172 e where id in (84,89) and 84,89 NOT NULL
Page: /crm/index.php?module=items/&action=save&id=175&token=XEYdNvF48W
#0 includes/functions/database.php(87): mysqli_query(Object(mysqli), 'select e.id , (...')
#1 plugins/ext/classes/processes/link_records_by_mysql_query.php(50): db_query('select e.id , (...', false)
#2 plugins/ext/classes/processes/processes.php(1414): link_records_by_mysql_query->process(Array, Object(choices_values))
#3 plugins/ext/classes/processes/processes.php(46): processes->run(Array, false, true)
#4 modules/items/actions/items.php(210): processes->run_after_update(175)
#5 index.php(20): require('/var/www/stumpf...')
#6 {main}
alexinc
Сообщения: 422
Зарегистрирован: 03 мар 2022, 21:40
Имя: Alex
Откуда: Россия
Контактная информация:

Re: Нужна подсказка проверки в поле Сущность Аякс на пустоту

Сообщение alexinc »

alcompstudio писал(а): 05 июл 2022, 15:58
alexinc писал(а): 05 июл 2022, 15:04 Может быть так:
id in ([5098]) and [5098] NOT NULL
тоже ошибка

Код: Выделить всё

Database Error: 1064 - 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 '89 NOT NULL' at line 1
Query: select e.id , ( (select ((func100.parent_item_id)) from app_entity_88 func100 where func100.id>0 and func100.id=e.parent_item_id limit 1) ) as field_5940, (e.parent_item_id) as field_5947 from app_entity_172 e where id in (84,89) and 84,89 NOT NULL
Page: /crm/index.php?module=items/&action=save&id=175&token=XEYdNvF48W
#0 includes/functions/database.php(87): mysqli_query(Object(mysqli), 'select e.id , (...')
#1 plugins/ext/classes/processes/link_records_by_mysql_query.php(50): db_query('select e.id , (...', false)
#2 plugins/ext/classes/processes/processes.php(1414): link_records_by_mysql_query->process(Array, Object(choices_values))
#3 plugins/ext/classes/processes/processes.php(46): processes->run(Array, false, true)
#4 modules/items/actions/items.php(210): processes->run_after_update(175)
#5 index.php(20): require('/var/www/stumpf...')
#6 {main}
Возможно, я ошибся с синтаксисом - IS NOT NULL
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Нужна подсказка проверки в поле Сущность Аякс на пустоту

Сообщение alcompstudio »

тоже ошибка. Я подразумеваю, что таким образом проверяется число (могу ошибаться), т.к. если в поле одно значение - то работает без ошибок, а если ставлю 2 и более, то ошибка (в ошибке такой кусок кода "...and 84,89 NOT NULL...").

84 и 89 - это значения, помещенные в поле Сущность Аякс - оно множественное, и в БД хранятся через запятую. Возможно нужен другой "синтаксис" проверки на пустоту. Вот не могу понять, какой... :(
alexinc
Сообщения: 422
Зарегистрирован: 03 мар 2022, 21:40
Имя: Alex
Откуда: Россия
Контактная информация:

Re: Нужна подсказка проверки в поле Сущность Аякс на пустоту

Сообщение alexinc »

alcompstudio писал(а): 05 июл 2022, 17:10 тоже ошибка. Я подразумеваю, что таким образом проверяется число (могу ошибаться), т.к. если в поле одно значение - то работает без ошибок, а если ставлю 2 и более, то ошибка (в ошибке такой кусок кода "...and 84,89 NOT NULL...").

84 и 89 - это значения, помещенные в поле Сущность Аякс - оно множественное, и в БД хранятся через запятую. Возможно нужен другой "синтаксис" проверки на пустоту. Вот не могу понять, какой... :(
А тип поля какой? Если текстовый или около того, то можно так попробовать:
LENGTH(TRIM([5098])) > 0
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Нужна подсказка проверки в поле Сущность Аякс на пустоту

Сообщение alcompstudio »

alexinc писал(а): 05 июл 2022, 17:26
alcompstudio писал(а): 05 июл 2022, 17:10 тоже ошибка. Я подразумеваю, что таким образом проверяется число (могу ошибаться), т.к. если в поле одно значение - то работает без ошибок, а если ставлю 2 и более, то ошибка (в ошибке такой кусок кода "...and 84,89 NOT NULL...").

84 и 89 - это значения, помещенные в поле Сущность Аякс - оно множественное, и в БД хранятся через запятую. Возможно нужен другой "синтаксис" проверки на пустоту. Вот не могу понять, какой... :(
А тип поля какой? Если текстовый или около того, то можно так попробовать:
LENGTH(TRIM([5098])) > 0
Тип поля Сущность аякс, да еще и множественный) в нем нужно проверять пустоту
Аватара пользователя
Antonyous99
Сообщения: 752
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

Re: Нужна подсказка проверки в поле Сущность Аякс на пустоту

Сообщение Antonyous99 »

84 и 89 - это значения, помещенные в поле Сущность Аякс - оно множественное, и в БД хранятся через запятую.
Попробуйте

Код: Выделить всё

FIND_IN_SET
Да, блин, почему нельзя просто:

Код: Выделить всё

and [5098]
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Нужна подсказка проверки в поле Сущность Аякс на пустоту

Сообщение alcompstudio »

Antonyous99 писал(а): 05 июл 2022, 21:19
84 и 89 - это значения, помещенные в поле Сущность Аякс - оно множественное, и в БД хранятся через запятую.
Попробуйте

Код: Выделить всё

FIND_IN_SET
Да, блин, почему нельзя просто:

Код: Выделить всё

and [5098]
Не получается... тоже ошибку выдает. Я уже не знаю, как включить проверку на пустоту, пробовал и так:

Код: Выделить всё

id in ([5098]) and REPLACE([5098],',','')>0

Код: Выделить всё

id in ([5098])
и

Код: Выделить всё

FIND_IN_SET(id,[5098])
работают примерно одинаково, за исключением id in ([5098]) - со всеми значениями в поле, FIND_IN_SET(id,[5098]) - почему-то только с одним значением, если 2 и более - ошибка.
И оба варианта не работают с "пустым" полем - ошибка получается.
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Нужна подсказка проверки в поле Сущность Аякс на пустоту

Сообщение support »

Попробуйте с одинарными кавычками

Код: Выделить всё

FIND_IN_SET(id,'[5098]')
Ответить