how to find first column name with null value in specific row
-
The query below works fine for returning the column names that are null, what I am trying to accomplish is have it return to the first column name with a null value. I also have another column named email that has a unique email address for each row. My problem is I cannot figure out the appropriate syntax for doing this. any help is appreciated! I am also using php5.2 for this. SELECT col FROM (SELECT 'GAME0' AS col, GAME0 AS value FROM USERNAME UNION ALL SELECT 'GAME1', GAME1 FROM USERNAME UNION ALL SELECT 'GAME2', GAME2 FROM USERNAME UNION ALL SELECT 'GAME3', GAME3 FROM USERNAME UNION ALL SELECT 'GAME4', GAME4 FROM USERNAME UNION ALL SELECT 'GAME5', GAME5 FROM USERNAME UNION ALL SELECT 'GAME6', GAME6 FROM USERNAME UNION ALL SELECT 'GAME7', GAME7 FROM USERNAME UNION ALL SELECT 'GAME8', GAME8 FROM USERNAME UNION ALL SELECT 'GAME9', GAME9 FROM USERNAME UNION ALL SELECT 'GAME10', GAME10 FROM USERNAME UNION ALL SELECT 'GAME11', GAME11 FROM USERNAME UNION ALL SELECT 'GAME12', GAME12 FROM USERNAME UNION ALL SELECT 'GAME13', GAME13 FROM USERNAME UNION ALL SELECT 'GAME14', GAME14 FROM USERNAME UNION ALL SELECT 'GAME15', GAME15 FROM USERNAME UNION ALL SELECT 'GAME16', GAME16 FROM USERNAME UNION ALL SELECT 'GAME17', GAME17 FROM USERNAME UNION ALL SELECT 'GAME18', GAME18 FROM USERNAME UNION ALL SELECT 'GAME19', GAME19 FROM USERNAME ) allValues WHERE value is null and email='emailaddress' EDIT: if the query above is unneeded, I need something like below, where I can change the value of the first null value. Again syntax is my biggest problem. update username SET CASE GAME0 WHEN GAME0 IS NOT NULL THEN GAME1 WHEN GAME1 IS NOT NULL THEN GAME2 WHEN GAME2 IS NOT NULL THEN GAME3 WHEN GAME3 IS NOT NULL THEN GAME4 WHEN GAME4 IS NOT NULL THEN GAME5 WHEN GAME5 IS NOT NULL THEN GAME6 WHEN GAME7 IS NOT NULL THEN GAME8 WHEN GAME8 IS NOT NULL THEN GAME9 WHEN GAME9 IS NOT NULL THEN GAME10 WHEN GAME10 IS NOT NULL THEN GAME11 WHEN GAME11 IS NOT NULL THEN GAME12 WHEN GAME12 IS NOT NULL THEN GAME13 WHEN GAME13 IS NOT NULL THEN GAME14 WHEN GAME14 IS NOT NULL THEN GAME15 WHEN GAME15 IS NOT NULL THEN GAME16 WHEN GAME16 IS NOT NULL THEN GAME17 WHEN GAME17 IS NOT NULL THEN GAME18 WHEN GAME18 IS NOT NULL THEN GAME19 END where EMAIL='emailaddress'
-
Answer:
You can make this query much simplier and do some of the calculations through php: $arr_field = array(); foreach(range(0, 19) as $i) $arr_field[] = "GAME{$i}"; $str_add = implode(' + ', $arr_field); $str_select = implode(', ', $arr_field); $query = mysql_query(" SELECT {$str_select} FROM USERNAME WHERE ({$str_add}) IS NULL AND email = 'emailaddress' "); // Then get the NULL column through a loop while($row = mysql_fetch_assoc($query)) foreach($arr_field as $h) if ( ! isset($row[$h])) { echo "Found column! {$h}<br />"; break; } Baiscly I add all the 20 fields together, and if any of these 20 values are NULL, the result becomes NULL. I fetch all 20 values, then loop through php to find NULL fields. To be honest though, I would have made another stucture having a second table handling these GAME0 - GAME19 fields instead.
IceSteve at Stack Overflow Visit the source
Other answers
I don't really understand your table structure, but here is an easy way: just add order by col limit 1 to your query. Edit: for this to work, you will have to use "GAME00", "GAME01" etc. (You don't have to change the column names, just the name you place in the string) Edit 2: To include the email address it has to exist in your subquery, like this: SELECT col FROM (SELECT 'GAME00' AS col, GAME0 AS value, email FROM USERNAME UNION ALL SELECT 'GAME01', GAME1, email FROM USERNAME (etc)
dwurf
Related Q & A:
- How To Find Mobile Owners Name From India?Best solution by Yahoo! Answers
- How To Find Mobile Owner Name India?Best solution by mobilegyaan.com
- How to get the colour name by RGB value?Best solution by Stack Overflow
- How to retrieve a variable name given its value?Best solution by Stack Overflow
- How to find all equals paths in degenerate tree from specific start vertex?Best solution by Stack Overflow
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.