SELECT <A OR B> FROM my_table WHERE A=5 OR B=5;
Say the values (A,B) are:
1,5
2,5
5,3
5,4
The result of SELECT
should be
1
2
3
4
In other words I need the value from the other column (other than the one found by WHERE
).
答案 0 :(得分:3)
你可以试试这个:
SELECT
CASE WHEN a = 5 THEN b
ELSE a
END AS AorB
FROM my_table
WHERE a = 5 OR b = 5
如果您的SQL方言中没有CASE
,我会想到另一种可能的解决方案,但是,它不会保留行的顺序。
SELECT b AS AorB FROM my_table WHERE a = 5
UNION ALL
SELECT a AS AorB FROM my_table WHERE b = 5
请注意,此查询明确允许结果集中包含重复值!如果要查看不同的值,则应省略ALL
。
答案 1 :(得分:2)
假设您的数据库支持案例表达式,并假设A
和B
具有相同的数据类型 - 这应该有效:
SELECT CASE WHEN A = 5 THEN B ELSE A END AS OtherValue
FROM Table
WHERE A = 5
OR B = 5;
答案 2 :(得分:2)
如果您正在寻找一个非常易读的查询,请使用select a from my_table where b = 5
union
select b from my_table where a = 5;
:
RewriteRule ^other/(.*) /wp-includes/$1?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^file/(.*) /wp-content/uploads/$1?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^ext/(.*) /wp-content/plugins/$1?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^skin/([_0-9a-zA-Z-]+)/main.css /index.php?style_wrapper=true&template_wrapper=$1&sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^skin/([_0-9a-zA-Z-]+)/style\.css /nothing_404_404?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^skin/(.*) /wp-content/themes/$1?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^([_0-9a-zA-Z-]+/)?ajax /wp-admin/admin-ajax.php?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^inc/(.*) /wp-content/$1?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^(readme\.html|license\.txt|wp-content/debug\.log|wp-includes/$) /nothing_404_404?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^(((wp-content|wp-includes)/([A-Za-z0-9\-\_\/]*))|(wp-admin/(!network\/?)([A-Za-z0-9\-\_\/]+)))(\.txt|/)$ /nothing_404_404?sEyM_hide_my_wp=1234 [QSA,L]
答案 3 :(得分:2)
假设?php
$this->startSetup();
$this->addAttribute(catalog_product, 'featured_product', array(
'group' => 'General',
'input' => 'select',
'type' => 'text',
'label' => 'Featured Product',
'backend' => '',
'visible' => true,
'required' => false,
'visible_on_front' => true,
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'source' => 'eav/entity_attribute_source_boolean',
'sort_order' => 8,
));
$this->endSetup();
和A
都是数值,我想知道哪个解决方案可以更快地运行,使用B
,CASE
(两者都是常规解决方案)或类似查询这一个:
UNION
答案 4 :(得分:0)
我认为这会奏效:
SELECT CASE WHEN a = 5 THEN b ELSE a END val FROM #tmpAll WHERE 5 IN (a, b)