2016-11-18 12 views
2

Этот вопрос относится к Talend Open Studio, но на самом деле находится в пределах области Java Regex.Фильтрация столбца таблицы с использованием нескольких подстановочных знаков

мне нужно фильтровать таблицу MySQL для

  1. исключить имя поля в одном столбце и
  2. строк пропусков, которые содержат перестановки ключевых слов, которые встречаются в строке в нескольких других столбцах.

Использование tMySQLInput -> TMAP -> tMySQLInput с row1.CAT1.equals ("IT") в качестве входного выражения мне удалось с целью 1.

Я не смог найти как передать список подстановочных знаков с помощью tFilterRow или любого другого компонента. Ключевые слова:% temp%,% recruit% и% sourc%. (Я использую%, потому что он знаком с моими MySQL-запросами.)

То, что я надеюсь найти, это что-то вроде: row1.ColumnName.contains (% temp% |% recruit% |% source%), который я могу положить в переменном выражении фильтр выражения в tMap или расширенное выражение в tFilterRow.

Я новичок в Java-кодировании, поэтому любые наилучшие практики/советы/код будут очень признательны. Спасибо за помощь, я многому научился у этого сообщества.

+1

Не можете ли вы сделать фильтрацию в MySQL? Чем меньше данных вы вытащите, тем быстрее будет ваша работа. –

+0

Я рассмотрел это и сделал это как удержание, но я ищу «повторяемые и автоматизированные» варианты, которые предоставляет талант. – 19321

+0

, нажав фильтры в базу данных, вы сэкономите много времени, и если вы будете работать с терабайтами данных, это окупится –

ответ

0

Это работает:

row3.Var1.contains("temp") || row3.Var1.contains("recruit") || row3.Var1.contains("source") ? row3.Var1 : "" 

Но это то, что ваш просят?

+1

Спасибо за быстрый ответ. Это меня закрывает, но получай это ... когда я положил! утверждение этого ... row1.Voucher_Header_Notes.contains ("TEMP") || row1.Voucher_Header_Notes.contains ("VIA") &&! row1.CAT1.equals ("IT") ... в начале я получаю другое набор данных. Является ли выражение более весомым для частей в начале? – 19321

+0

Использует ли строка row3 вместо row1, чтобы выражение было введено в определенном месте в tmap? – 19321

+0

Я не могу включить include || exclude для правильной работы. Я попытался row1.column.contains ("X") ||! (Row1.column.contains ("Y")), row1.column.contains ("X") ||! Row1.column.contains ("Y "), row1.column.contains (" X ") &&! (row1.column.contains (" Y ") безрезультатно. Должен ли я искать выражение exclude в другом компоненте или другом месте в tmap? Могу ли я объединить tfilter и tmap? – 19321