SQL选择值我有一个表叫payment
,其中包括列 - bill ID
,group ID
,u1
,u1paid
,u2
,u2paid
,u3
,u3paid
,u4
,u4paid
,u5
, u5paid
。如果我当前设置的用户ID等于在我选择的行中存储在其中一列u1,u2 ...等中的ID,我想要做的是存储其中一个付费列的值。从列在另一列等于给定值
实施例,如果当前用户ID等于存储在u3
的ID,我想的u3paid
值存储在一个PHP变量。什么是SQL命令来实现这一点?
在解决方案的尝试:
SELECT u1paid if u1 = SessionID or u2paid if u2 = SessionID or
u3paid if u3 = SessionID or u4paid if u4 = SessionID or
u5paid if u5 = SessionID FROM payment WHERE billID = BILLID;
我知道,这是不正确的语法,但它是最接近我能得到的东西类似SQL的。
第二个Edit(上twoleggedhorse的回答为基础):
$payment = "SELECT CASE WHEN u1 = '".$_SESSION['ID']."' THEN u1paid WHEN u2 =
'".$_SESSION['ID']."' THEN u2paid WHEN u3 = '".$_SESSION['ID']."' THEN u3paid
WHEN u4 = '".$_SESSION['ID']."' THEN u4paid
WHEN u5 = '".$_SESSION['ID']."' THEN u5paid END AS PAID
FROM payment WHERE trackbill = '".$row['BID']."';"
在那之后,我试图从$支付[“付费”]这条语句访问该值,但它仍然是不加工。我还在搞这件事吗?
EDIT3:上述命令的作品,我只是搞砸变量名中的一个:P
什么是你的企图? – Trent 2013-03-06 16:44:59
我试过用case语句试验,但我根本无法拿出任何具体的东西。这是一个更大的任务的一小部分,除了SQL中简单的Select和Update语句之外,我们没有涉及任何内容,所以我有点失落。 – 2013-03-06 16:46:33
好吧,这听起来像一个非常简单的SELECT语句。请至少尝试编辑您的问题。我的意思是基本上你可以通过谈论它来解决这个问题......你需要从支付表中选择u3paid,其中u3等于...不要混淆,只需输入你想要的简单英语,会看到查询... – Trent 2013-03-06 16:49:01