Php 字段值上的MySQL通配符?
我正在尝试构建一个简单的系统,用于在将某些值输出到用户文件之前对其进行转换。假设我有文本:“Method(aaaabbbccc-random text)”,我试图让用户将其转换为他们想要的任何内容。我已经为转换建立了一个表,在这个表中,用户将输入say'Method*'=>'Description',这基本上意味着他们希望文本“Method”后跟任何(*=通配符)被简单地翻译成“Description”(或他们想要的任何其他文本) 如果我有一些信息:Php 字段值上的MySQL通配符?,php,mysql,filter,wildcard,Php,Mysql,Filter,Wildcard,我正在尝试构建一个简单的系统,用于在将某些值输出到用户文件之前对其进行转换。假设我有文本:“Method(aaaabbbccc-random text)”,我试图让用户将其转换为他们想要的任何内容。我已经为转换建立了一个表,在这个表中,用户将输入say'Method*'=>'Description',这基本上意味着他们希望文本“Method”后跟任何(*=通配符)被简单地翻译成“Description”(或他们想要的任何其他文本) 如果我有一些信息: Method (aaaabbbccc -
Method (aaaabbbccc - random text)
Method 2 (test - text)
Method3
这应该转化为
Description
Description
Method3
由于最后一行不满足用户定义的过滤器,因此它不会被转换
我认为实现这一点的最简单方法是对每行执行查询:
SELECT new_text FROM table WHERE old_text LIKE 'Method 2 (test - text)' etc.
但是由于旧的_文本是“Method*”,所以需要将*转换为通配符,MySQL在执行搜索时需要处理这个问题。我尝试的每个组合(甚至将旧的_文本存储为'Method%')似乎都不起作用
希望有人能为构建这样一个系统提供一些指导,在这个系统中,用户可以定义过滤器,然后让MySQL对这些过滤器进行操作。是在MySQL/(使用phpmyadmin)中完成的。这是最终的输出屏幕(希望您能理解意大利语):
Visualizazione记录0-1(总计2条,查询时间为0.0010秒)
选择*
从tabl
其中类似于“方法%”的txt
id文本
1 Method 2 (test - text)
2 method (aaaabbbccc - random text)
好吧?我想你需要这样的东西:
SELECT CASE WHEN old_text LIKE REPLACE(user_entry, '*', '%')
THEN new_text
ELSE old_text
END AS modified_text
FROM table
其中:旧文本
是方法(aaaabbbccc-随机文本)
,user\u条目
是“方法*”
和new\u text
是'Description'
很难理解您想做什么,我认为您不希望用户编写查询