Вы всегда можете объединить строки и использовать их как один аргумент:
SELECT * FROM table WHERE
POSITION('x' in (field1 || field2 || field3) ) > 0
Обратите внимание, что это объединение с || даст вам значение NULL, если любое из полей field1, field2, field3 имеет значение null, а конкатенация с функцией concat не будет:
SELECT * FROM table WHERE
POSITION('x' in concat(field1, field2, field3) ) > 0
Если вы ищете один символ, это будет хорошо. Однако, если вы ищете, например, «ax», и вы не хотите совпадать, если field1 оканчивается на «a», а field2 начинается с «x», тогда вы также можете включить разделитель между аргументами с помощью функции concat_ws, например:
В Java это звонило varargs, и синтаксис похож на регулярный параметр, но с замещающим знаком ("... ") после типа:
public void foo(Object... bar) {
for (Object baz : bar) {
System.out.println(baz.toString());
}
}
vararg параметр должен всегда быть последний параметр в сигнатуре метода и получен доступ, как будто Вы получили массив того типа (например, Object[]
в этом случае).
Это добьется цели в Java
public void foo(String parameter, Object... arguments);
, необходимо добавить три точки ...
и varagr
, параметр должен быть последним в подписи метода.