我有两个表商品和 sale_invoice_items ,商品有一个标志,指示商品是否过期,而sale_invoice_items有失效日期。 现在做SELECT时返回我正在做的发票:
select items.name as f1, IF( items.expiry =TRUE, sale_invoice_items.expiry, '-') as f2
from sale_invoices, sale_invoice_items, items where sale_invoices.id = 3 and sale_invoice_items.invoice_id = sale_invoices.id and items.id = sale_invoice_items.item_id
因此项目到期,然后在字段中返回到期日期,否则,只需写“ - ”
项目名称返回ok,但是到期时不是,它返回一个字节数组。
我做错了什么?
答案 0 :(得分:2)
select
....
, case when items.expiry = true then
sales_invoice_items.expiry
else
'-'
end as expiry
....
from
....
您需要确保
的数据类型sales_invoice_items.expiry
和
'-'
是相同的即字符。您可以在此处使用转换功能
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
实现这一目标。
如果你想要一个返回日期,那么你需要决定你对“其他”案例的期望值:虚拟日期,空值....?