usted podría intentar:
country REGEXP ('^(USA|Italy|France|)$')
que acaba de agregar otra |
después France
, que debe básicamente sería decirle que también coincide con ^$
que es el mismo que country = ''
.
Actualización: ya que este método no funciona, yo recomendaría utiliza esta expresión regular:
country REGEXP ('^(USA|Italy|France)$|^$')
Tenga en cuenta que no se puede utilizar la expresión regular: ^(USA|Italy|France|.{0})$
porque se quejan de que hay una subexpresión vacía Aunque ^(USA|Italy|France)$|^.{0}$
funcionaría.
Éstos son algunos ejemplos del valor de retorno de esta expresión regular:
select '' regexp '^(USA|Italy|France)$|^$'
> 1
select 'abc' regexp '^(USA|Italy|France)$|^$'
> 0
select 'France' regexp '^(USA|Italy|France)$|^$'
> 1
select ' ' regexp '^(USA|Italy|France)$|^$'
> 0
Como se puede ver, devuelve exactamente lo que quiere.
Si desea tratar los valores en blanco los mismos (por ejemplo, 0 espacios y 5 plazas de tanto contar como blanco), se debe utilizar la expresión regular:
country REGEXP ('^(USA|Italy|France|\s*)$')
Esto hará que la última fila en el ejemplo anterior para comportan de manera diferente, es decir:
select ' ' regexp '^(USA|Italy|France|\s*)$'
> 1
Usted Sabes, podrías haber usado '^ $' en lugar de '^. {0} $' en el lado derecho del '' – gnarf
@gnarf: woops, estaba tratando de evitar el uso de miradas Pasé por alto estas simples soluciones que brindó. Gracias, actualicé la respuesta. – Senseful