SELECT *, CASE
WHEN paydatefinal IS NULL OR paydatefinal = '0000-00-00' THEN paydate
ELSE paydatefinal END AS `paydatefinColumn`
FROM
`ws_crm_comenzi`
WHERE
`sezonId` = '4'
AND `service_id` = '1'
AND `finished` = '1'
AND `paydatefinColumn`='2016-09-26'
ORDER BY `paydatefinColumn` DESC
how can i make an AND From An Column (paydatefinColumn) that is made in a case but in table this column dose't exist
Since that generated column is rather lengthy and you cannot use a generated column in a where clause, the easiest perhaps to wrap the whole thing in another select
SELECT * FROM (
SELECT *, CASE
WHEN paydatefinal IS NULL OR paydatefinal = '0000-00-00' THEN paydate
ELSE paydatefinal END AS `paydatefinColumn`
FROM
`ws_crm_comenzi`
WHERE
`sezonId` = '4'
AND `service_id` = '1'
AND `finished` = '1'
AND `paydatefinColumn`='2016-09-26'
ORDER BY `paydatefinColumn` DESC)
AS A WHERE paydatefinColumn = whatever
You should repeat the code this way
SELECT *, CASE
WHEN paydatefinal IS NULL OR paydatefinal = '0000-00-00' THEN paydate
ELSE paydatefinal END AS `paydatefinColumn`
FROM
`ws_crm_comenzi`
WHERE
`sezonId` = '4'
AND `service_id` = '1'
AND `finished` = '1'
AND (CASE
WHEN paydatefinal IS NULL OR paydatefinal = '0000-00-00' THEN paydate
ELSE paydatefinal END ) = str_toDate('2016-09-26', '%Y-%m-%d')
ORDER BY `paydatefinColumn` DESC
You need to repeat the CASE statement in the where clause
SELECT *, CASE
WHEN paydatefinal IS NULL OR paydatefinal = '0000-00-00' THEN paydate
ELSE paydatefinal END AS `paydatefinColumn`
FROM
`ws_crm_comenzi`
WHERE
`sezonId` = '4'
AND `service_id` = '1'
AND `finished` = '1'
AND
CASE
WHEN paydatefinal IS NULL OR paydatefinal = '0000-00-00' THEN paydate
ELSE paydatefinal END='2016-09-26'
ORDER BY `paydatefinColumn` DESC
You can simply do that by adding it in a subquery
SELECT * from (SELECT *, CASE WHEN paydatefinal IS NULL OR paydatefinal = '0000-00-00'
THEN paydate
ELSE
paydatefinal END AS `paydatefinColumn` FROM `ws_crm_comenzi` WHERE `sezonId` = '4' AND `service_id` = '1' AND `finished` = '1')as TEMP
where TEMP.paydatefinColumn='2016-09-26' ORDER BY TEMP.paydatefinColumn DESC;