title: select * from table where column = something or, when unavailable, column = something else
body: <p>I am looking for something more efficient and/or easier to read than the query that follows.  The best way to explain the question is to provide a sample.</p>
  
  <p>Assume the following table structure in MySQL that represents, say, a localization context for various strings in the application I am creating.</p>
  
  <pre><code>create table LOCALIZATION_TABLE (
     SET_NAME    varchar(36) not null,
     LOCALE      varchar(8)  not null default '_',
     ENTRY_KEY   varhcar(36) not null,
     ENTRY_VALUE text            null
  );
  
  alter table LOCALIZATION_TABLE
    add constraint UQ_ENTRY
    unique (SET_NAME, LOCALE, ENTRY_KEY);
  </code></pre>
  
  <p>Assume the following values are entered in the table:</p>
  
  <pre><code>insert into LOCALIZATION_TABLE (SET_NAME, LOCALE, ENTRY_KEY, ENTRY_VALUE)
  values
    ('STD_TEXT', '_',  'HELLO', 'Hello!'),
    ('STD_TEXT', '_',  'GOODBYE', 'Goodbye.'),
    ('STD_TEXT', 'ge', 'GOODBYE', 'Lebewohl')
  ;
  </code></pre>
  
  <p>I want to select all the available entries for German ("ge"), and if not available use the English text ("_") by default.  The query I am currently using is as follows:</p>
  
  <pre><code>select * from LOCALIZATION_TABLE where SET_NAME = 'STD_TEXT' and LOCALE = 'ge'
  union
  select * from LOCALIZATION_TABLE where SET_NAME = 'STD_TEXT' and LOCALE = '_'
    and ENTRY_KEY not in (
      select ENTRY_KEY from LOCALIZATION_TABLE where BUNDLE = 'STD_TEXT' and LOCALE = 'ge'
    )
  </code></pre>
  
  <p>I <strong>really</strong> do not like the look of this query and I am certain there must be something more concise that can be utilized instead.  Any help or clues to the right direction would be appreciated.  While this works it just does not seem <em>proper</em>.</p>