Go to the first, previous, next, last section, table of contents.
BLOB
values can't ``reliably'' be used in GROUP BY
or ORDER
BY
or DISTINCT
. Only the first max_sort_length
bytes
(default 1024) are used when comparing BLOB
bs in these cases. This can be
changed with the -O max_sort_length
option to mysqld
. A
workaround for most cases is to use a substring: SELECT DISTINCT LEFT(blob,2048)
FROM tbl_name
. BIGINT
or DOUBLE
(both are normally
64 bits long). It depends on the function which precision one gets. The general rule is
that bit functions are done with BIGINT
precision, IF
, and ELT()
with BIGINT
or DOUBLE
precision and the rest with DOUBLE
precision. One should try to avoid using bigger unsigned long long values than 63 bits
(9223372036854775807) for anything else than bit fields! BLOB
and TEXT
columns,
automatically have all trailing spaces removed when retrieved. For CHAR
types
this is okay, and may be regarded as a feature according to ANSI SQL92. The bug is that in
MySQL, VARCHAR
columns are treated the same way. ENUM
and SET
columns in one table.
safe_mysqld
re-directs all messages from mysqld
to the mysqld
log. One problem with this is that if you execute mysqladmin refresh
to close
and reopen the log, stdout
and stderr
are still redirected to
the old log. If you use --log
extensively, you should edit safe_mysqld
to log to `'hostname'.err' instead of `'hostname'.log' so you can easily
reclaim the space for the old log by deleting the old one and executing mysqladmin
refresh
. UPDATE
statement, columns are updated from left to right. If you
refer to a updated column, you will get the updated value instead of the original value.
For example: mysql> UPDATE tbl_name SET KEY=KEY+1,KEY=KEY+1
will update KEY
with 2
instead of with 1
.
select * from temporary_table, temporary_table as t2;
The following is known bugs in earlier versions of MySQL:
UPDATE
that updated a key with a WHERE
on the same key may have failed because the key was used to search for records and the
same row may have been found multiple times: UPDATE tbl_name SET KEY=KEY+1 WHERE KEY > 100;
A workaround is to use:
mysql> UPDATE tbl_name SET KEY=KEY+1 WHERE KEY+0 > 100;
This will work because MySQL will not use index on expressions in the WHERE
clause.
For platform-specific bugs, see the sections about compiling and porting.
Go to the first, previous, next, last section, table of contents.