MySQL automaticamente converte números para quando necessário, e vice-versa:
mysql>SELECT 1+"1";
-> 2 mysql>SELECT CONCAT(2,' test');
-> '2 test'
Se você quiser converter um número em uma string de forma
explicita, passe-o como um argumento de
CONCAT()
.
Se uma função de string tem uma string binária como argumento, a string resultante é também um string binária. Um número convertido para uma string é tratado como um string binária. Isto afeta apenas a comparação.
Normalmente, se qualquer expressão em uma string é caso-sensitivo, a comparação é realizada no modo caso sensitivo.
expr LIKE pad [ESCAPE 'car-escape']
Correspondência de padrões usando uma simples expressão
de comparações SQL. Retorna 1
(VERDADEIRO) ou 0
(FALSO). Com
LIKE
você pode usar os seguintes
meta-caracteres no padrao:
Car | Descrição |
% |
Corresponde a qualquer número de caracteres, até zero caracteres |
_ |
Corresponde a exatamente um caracter |
mysql>SELECT 'David!' LIKE 'David_';
-> 1 mysql>SELECT 'David!' LIKE '%D%v%';
-> 1
Para testar instâncias literais de um meta caracter,
preceda o caracter com o carcter de escape. Se você não
especificar o caracter de ESCAPE
,
assume-se ‘\
’:
String | Description |
\% |
Correponde a um caracter %
|
\_ |
Correponde a um caracter _
|
mysql>SELECT 'David!' LIKE 'David\_';
-> 0 mysql>SELECT 'David_' LIKE 'David\_';
-> 1
Para especificar um caracter de escape diferebte, use a
cláusula ESCAPE
:
mysql> SELECT 'David_' LIKE 'David|_' ESCAPE '|';
-> 1
As seguintes instruções mostram que a comparação de strings são caso-insensitivo, a menos que um dos operandos seja uma string binária:
mysql>SELECT 'abc' LIKE 'ABC';
-> 1 mysql>SELECT 'abc' LIKE BINARY 'ABC';
-> 0
LIKE
é permitido em uma expressão
numérica! (Esta é uma extensão MySQL para o
LIKE
do SQL-99.)
mysql> SELECT 10 LIKE '1%';
-> 1
Nota: Como MySQL usa sintaxe de escape do C em strings
(por exemplo, '\n
'), você deve dobrar
qualquer ‘\
’ que você usar
em sua string LIKE
. Por exemplo, para
pesquisar por '\n
', especifique-o como
'\\n
'. Para buscar por
‘\
’, especifique-o como
'\\\\
' (as barras invertidas são
eliminadas uma vez pelo analizador e outra vez quando a
correspondência de padrões é feita, deixando uma
únicas barra invertida para ser verificada).
Note: O
LIKE
atual não é um caracter
multi-byte
. Comparaçãoes são feitas caracter
por caracter.
expr NOT LIKE pad [ESCAPE 'car-escape']
O mesmo que NOT (expr LIKE pad [ESCAPE
'car-escape'])
.
expr SOUNDS LIKE expr
O mesmo que SOUNDEX(expr)=SOUNDEX(expr)
(disponível apenas na versão 4.1 ou posterior).
expr REGEXP pad
, expr RLIKE
pad
Realiza a busca de padrões em uma expressã string com
base no padrão pad
. O padrão pode ser
uma expressão regular extendida. See
Apêndice G, Sintaxe de Expressões Regulares do MySQL. Retorna 1
se
expr
conincide com
pad
, senão retorna
0
. RLIKE
é um
sinônimo para REGEXP
, fornecido para
compatibilidade com mSQL
. Nota: Como
MySQL usa a sintaxe de escape do C em strings (por
exemplo, '\n
'), você deve dobrar
qualquer ‘\
’ que você use
em sua string REGEXP
. Como na versão
3.23.4 do MySQL, REGEXP
é caso-
insensitivo para strings normais (não binárias).
mysql>SELECT 'Monty!' REGEXP 'm%y%%';
-> 0 mysql>SELECT 'Monty!' REGEXP '.*';
-> 1 mysql>SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';
-> 1 mysql>SELECT "a" REGEXP "A", "a" REGEXP BINARY "A";
-> 1 0 mysql>SELECT "a" REGEXP "^[a-d]";
-> 1
REGEXP
e RLIKE
usam
o conjunto de caracteres atual (ISO-8859-1 Latin1 por
padrão) para decidir o tipo de caracter.
expr NOT REGEXP pad
, expr NOT
RLIKE pad
O mesmo que NOT (expr REGEXP pad)
.
STRCMP(expr1,expr2)
STRCMP()
retorna 0
se as string são a mesma, -1
se o
primeiro argumento é menor que o segundo de acordo com a
ordenação atual e 1
em caso
contrário:
mysql>SELECT STRCMP('texto', 'texto2');
-> -1 mysql>SELECT STRCMP('texto2', 'texto');
-> 1 mysql>SELECT STRCMP('texto', 'texto');
-> 0
MATCH (col1,col2,...) AGAINST (expr [IN BOOLEAN
MODE | WITH QUERY EXPANSION] )
MATCH ... AGAINST()
é usado para busca
de textos completos e retorna a relvância - similaridade
medidad entre o texto nas colunas
(col1,col2,...)
e a consulta
expr
. Relevância é um número de
ponto flutuante. Relevância zero significa que não houve
nenhuma similaridade. MATCH ...
AGAINST()
está disponível na versão 3.23.23
ou posterior do MySQL. A extensão IN BOOLEAN
MODE
foi adicionada na versão 4.0.1,
WITH QUERY EXPANSION
foi adicionado na
versão 4.1.1. Para detalhes e exemplos de uso, veja
Secção 6.8, “Pesquisa Full-text no MySQL”.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.