Your "srch" and "show" variables contain strings. In the context of a query subexpression they will be interpreted as string values, not the contents of a column by name. You can, however, use the implicit "column" dictionary to perform this indirection, something like
result:select column[show] where column[srch] like term from internal_copy.value
(the "column" dictionary is also how you can reference columns whose names are not valid lil identifiers.)
You might want to take a look at the examples for the "_hideby" column in grids; it's designed to assist in searching and filtering grid contents without requiring an auxiliary source of truth.