In article <[EMAIL PROTECTED]>,
John Mistler <[EMAIL PROTECTED]> writes:

> Good idea.  liang le's answer almost got it, but I couldn't make it work
> with string values quite right.  Here is my situation:

> I am issuing a series of queries all-in-one like "SELECT nameColumn,
> otherColumn FROM theDatabase WHERE rowID = 1;SELECT nameColumn, otherColumn
> FROM theDatabase WHERE rowID = 2;SELECT nameColumn, otherColumn FROM
> theDatabase WHERE rowID = 3;"

> expecting a return of

> aName   otherItem

> aName   otherItem

> aName   otherItem

> but if one of those rowIDs does not exist, then I get

> aName   otherItem

> aName   otherItem

> and my app has no value for the non-existing row.  I would like for the
> query to return an indication that the row did not exist, like:

> aName   otherItem

> 0 or '' or 'NULL' (no nameColumn entries will ever = 0, or '', or NULL)

> aName   otherItem

> Does that make more sense, and if so, is there a solution?

This sounds like a broken DB design.  You should have another table
listing all possible rowIDs; something like that:

  CREATE TABLE myRows (
    rowID INT NOT NULL,
    nameColumn VARCHAR(255) NOT NULL,
    PRIMARY KEY (rowID)
  );

  INSERT INTO myRows (1, 'row #1');
  INSERT INTO myRows (2, 'row #2');
  INSERT INTO myRows (3, 'row #3');

Then you can do the following:

  SELECT t1.nameColumn, coalesce(t2.otherColumn, '')
  FROM myRows t1
  LEFT JOIN yourTable t2 ON t2.rowID = t1.rowID


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to