我从属性表中选择下面的查询..问题是我需要一个基于条件的格式化字符串..
1。)以字符串“Reply:”开头格式化的字符串
2.)按照上面的字符串:
Framed-Route + Framed-IP
或Framed-IP未设置路由
或池提示
以下是我需要的一个例子..
示例:回复:Framed-IP =“111.111.111.111”
示例2:回复:PoolHint =“8”
可以使用MySQL条件语句吗?
编辑补充if(attribute_name =='Framed-Route')Reply = Framed-Route =“value”; elseif(attribute_name =='Framed-IP')回复= Framed-IP =“value” else Reply = PoolHint =“value”
###########输出SELECT attribute_name, value
FROM user_product_attribute upa, product_attribute pa
WHERE upa.user_product_id IN
( SELECT upa.user_product_id
FROM user_product_attribute upa, user_product up, product_attribute pa, product p
WHERE pa.attribute_name = 'username'
AND pa.product_attribute_id = upa.product_attribute_id
AND pa.product_id = p.product_id
AND up.status = 'active'
AND p.product_name = 'product1'
AND upa.value = 'joebogs' )
AND upa.product_attribute_id = pa.product_attribute_id
###########输出
attribute_name值
诬陷路线111.111.111.111
Framed-IP-Address 111.111.111.111
PoolHint 8
用户名joeblogs
密码密码
答案 0 :(得分:0)
如果我已正确理解了这个问题,您可以使用MySQL CONCAT()
函数执行此操作:
不使用CONCAT:
mysql> SELECT attribute_name, value
-> FROM user_product_attribute
-> WHERE attribute_name = 'Framed-IP-Address'\G
attribute_name: Framed-IP-Address
value: 111.111.111.111
使用CONCAT函数的类似查询:
mysql> SELECT attribute_name,
-> CONCAT('Reply: Framed-IP=',value) AS 'formatted_value'
-> FROM user_product_attribute
-> WHERE attribute_name = 'Framed-IP-Address'\G
attribute_name: Framed-IP-Address
formatted_value: Reply: Framed-IP=111.111.111.111
CONCAT doc:http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_concat
正如我所说,不确定这是不是你需要的东西?
李 - 进一步评论,这是一个更新的查询。这个使用CONCAT和IF:
mysql> SELECT attribute_name,
-> IF(attribute_name = 'Framed-Route', CONCAT('Reply=Framed-Route=',value),
-> IF(attribute_name = 'Framed-IP', CONCAT('Reply=Framed-IP=',value), value))
-> AS 'formatted_value'
-> FROM user_product_attribute\G
*************************** 1. row ***************************
attribute_name: Framed-Route
formatted_value: Reply=Framed-Route=111.111.111.111
*************************** 2. row ***************************
attribute_name: Framed-IP
formatted_value: Reply=Framed-IP=111.111.111.111
在上面,如果attribute_name不是'Framed-Route'或'Framed-IP',则返回值而不进行任何格式化。