我在MySQL中有一个表,TAB_FILE有以下列(file_pattern包含对应于文件名的正则表达式) -
client_id | file_pattern
------------------------
91 | ^s101-XXX-typeA_\d{4}-\d{2}-\d{2}.csv.gz$
92 | ^s102-YYY-typeA_\d{4}-\d{2}-\d{2}.csv.gz$
我有一个包含文件名的文件列表,例如
file_names.txt -
s101-XXX-typeA_2015-10-12.csv.gz
s102-YYY-typeA_2015-10-10.csv.gz
我想编写一个查询来查找file_names.txt中每个文件名的client_id
cat file_names.txt | while read line
do
mysql -u*** -p*** DB1 -e "select client_id from TAB_FILE where $line rlike file_pattern"
done
此SQL查询无效。对此有任何帮助将非常感激。
答案 0 :(得分:1)
MySQL支持POSIX风格的正则表达式,但不支持与Perl兼容的正则表达式。
在您的示例中,您必须使用[[:digit:]]
代替\d
才能使其正常运行。
答案 1 :(得分:0)
您需要将“$ line”参数包装成引号,例如:
<a href="{{ URL::to('dashboard', $username)}}" class="logo">
<span class="logo-mini"><b>cpy</b></span>
<span class="logo-lg"><b>Company</b></span>
</a>
然后它会起作用。