首先,对不起我的英语。我是这些东西的初学者,我有一个简单的问题。我在mysql中存储数据。一列包含格式(例如)的数据:a,b,c,d或a,c,d或a,d ... 现在,在查询之后我想更改此值:
a = apple, b=blueberry, c=cat, d=dog ...
例如,如果列包含
a,d,我想更改并打印apple,dog ...
再一次,抱歉我的英语。请问一个人是否没有得到这个问题。
感谢。
答案 0 :(得分:2)
$map = array('a' => 'apple', 'b'=>'blueberry', 'c'=>'cat', 'd'=>'dog');
$column = 'a,d'; //your data here
$result = strtr($column, $map);
更新
$arr = explode(',', $result);
$links = array();
foreach($arr as $item) {
$links[] = $commonURLpart . $item;
}
答案 1 :(得分:1)
您可以利用REPLACE()
字符串函数的强大功能:
用法:
REPLACE(str,from_str,to_str)
返回字符串str
,其中出现所有字符串from_str
由字符串to_str
替换。此外,REPLACE()
执行区分大小写
搜索from_str
时匹配。
网址:http://dev.mysql.com/doc/refman/5.1/en/string-functions.html
例如:SELECT REPLACE('www.mysql.com', 'w', 'Ww');
将输出WwWwWw.mysql.com
更新:上述方法在MySQL级别的运行时期间更改内容。
如果这不相关,您可以使用str_replace()
PHP函数,使用简单的PHP字符串替换魔法在运行时期间更改输出的内容。这样,您将原始数据保存在数据库中,并输出所需的替换字符串。
答案 2 :(得分:1)
我建议您创建另一个表格,如:
+--------+-----------+
| letter | word |
+--------+-----------+
| a | apple |
| b | blueberry |
| c | cat |
| d | dog |
+--------+-----------+
然后执行类似的连接查询:
SELECT
*
FROM
`table1` as t1
JOIN
`table2` as t2
ON
t1.letter = t2.word
这会自动将您的信件转换为所需的字词。
PS:如果您可以发布原始表数据的示例,我可以使查询更容易理解。
答案 3 :(得分:0)
您可以使用if条件来执行此操作,您需要自定义值,例如
<?PHP
---prev code
$db_col = strtolower($row['col']);
if($db_col=='a'){
echo 'Apple';
}elseif($db_col=='b'){
echo 'Blueberry' ;
so on ........
?>
答案 4 :(得分:0)
我假设您在关联数组中有查询结果...
所以,首先是“循环”阵列:
while($row = mysql_fetch_assoc($replace_with_name_of_associative_array))
{
if (strtolower($row['repalace_with_column_name'])=='a'){ //strtolower just in case you have "A" and "a", "B" and "b",...
echo 'Apple';
}elseif(strtolower($row['repalace_with_column_name'])=='b'){
echo 'Blueberry';
}
//and so on...
}