Некоторые подробности о том, как работают «match (~)» и «like».Может быть, это поможет вам с вашим запросом.
1.Функция сопоставления (~): Сравнивает 2 объекта и возвращает true, если они совпадают, в противном случае false.
В вашем примере:
object1 = items list = `nut`bolt`cam`cog
object2 = "cam"
Таким образом, object1 не соответствует объекту 2.
Если вы хотите сопоставить каждый элемент из списка элементов с "cam", тогда выприходится перебирать список.
Но отдельный элемент является символом, поэтому он не будет совпадать с объектом 2, который является строкой.
q) `cam ~ "cam" / false
Поэтому необходимо преобразовать любой элемент в строку.или «кулачок» к «кулачку».Вот 2 способа сделать это.
q) object1: `nut`cam
q) string[object1] ~\: "cam" / 01b
q) object1 ~\: `cam / 01b
2.Подобно функции: Используется для сопоставления с образцом, и важным моментом является то, что если левый аргумент является списком, то он сравнивает каждый элемент списка с правым аргументом вместо полного списка, как функция '~'.
Такженет необходимости конвертировать символы в строку, поскольку это автоматически делает это за сценой.
q) items: `nut`cam
q) items like "cam" / 01b