我需要从哪里在OPTION_NAME列中的值开始以前缀“MY_”正则表达式来选择从一个数据库相匹配的预定义的文本前缀记录
数据库表抓取所有的记录和存储查询的结果在由option_name,option_value对组成的数组中?
我需要的数据库列称为“option_name”和“option_value”。
我将使用该数组在for循环中执行一些进一步的处理。
我猜这将需要SQL语句中的一个正则表达式,其中的option_name值匹配目标前缀的记录。
我需要从哪里在OPTION_NAME列中的值开始以前缀“MY_”正则表达式来选择从一个数据库相匹配的预定义的文本前缀记录
数据库表抓取所有的记录和存储查询的结果在由option_name,option_value对组成的数组中?
我需要的数据库列称为“option_name”和“option_value”。
我将使用该数组在for循环中执行一些进一步的处理。
我猜这将需要SQL语句中的一个正则表达式,其中的option_name值匹配目标前缀的记录。
对于SQL语句组成部分,只要使用like
用%通配符:
select * from YourTable where option_name like 'my|_%' escape '|'
由于_
也是你要逃避它通配符。
有足够的资源来读取PHP中的SQL查询结果:here's one。
如果使用一个简单的模式,如 “开头”,你可以使用LIKE
操作:
select *
from your_table
where option_name like 'my\_%';
注:
%
意味着“任何字符,任何次数“。_
意味着“任意字符,一周时间” - 所以,如果你想搜索文字'_'
,你有一个\
逃脱它。
只是为了信息,如果你需要测试用正则表达式匹配,你会想看看手册的Regular Expressions部分。
但这不是必要的,在这里:like
正常工作开始于。
+1为逃生 – Andomar 2011-03-24 21:55:53
$query = mysql_query("SELECT option_name, option_value FROM table WHERE option_name like 'my_%'");
while($result = mysql_fetch_array($query)){
$array = array("name" => $result['name'],"value" => $result['value']);
}
+1用于获取鲜为人知的“ESCAPE”条款适用于便携性。反斜杠转义是MySQL中的默认值,但不是ANSI SQL标准的一部分。 – bobince 2011-03-24 21:57:54
+1 @Andomar:谢谢你的回答。并供参考。 – 2011-03-25 01:42:50