1.32.1 Problem
You need a quick way to evaluate an expression.
1.32.2 Solution
Use mysql as a calculator. MySQL doesn't require every SELECT statement to refer to a table, so you can select the results of arbitrary expressions.
1.32.3 Discussion
SELECT statements typically refer to some table or tables from which you're retrieving rows. However, in MySQL, SELECT need not reference any table at all, which means that you can use the mysql program as a calculator for evaluating an expression:
mysql> SELECT (17 + 23) / SQRT(64); +----------------------+ | (17 + 23) / SQRT(64) | +----------------------+ | 5.00000000 | +----------------------+
This is also useful for checking how a comparison works. For example, to determine whether or not string comparisons are case sensitive, try the following query:
mysql> SELECT 'ABC' = 'abc'; +---------------+ | 'ABC' = 'abc' | +---------------+ | 1 | +---------------+
The result of this comparison is 1 (meaning "true"; in general, nonzero values are true). This tells you that string comparisons are not case sensitive by default. Expressions that evaluate to false return zero:
mysql> SELECT 'ABC' = 'abcd'; +----------------+ | 'ABC' = 'abcd' | +----------------+ | 0 | +----------------+
If the value of an expression cannot be determined, the result is NULL:
mysql> SELECT 1/0; +------+ | 1/0 | +------+ | NULL | +------+
SQL variables may be used to store the results of intermediate calculations. The following statements use variables this way to compute the total cost of a hotel bill:
mysql> SET @daily_room_charge = 100.00; mysql> SET @num_of_nights = 3; mysql> SET @tax_percent = 8; mysql> SET @total_room_charge = @daily_room_charge * @num_of_nights; mysql> SET @tax = (@total_room_charge * @tax_percent) / 100; mysql> SET @total = @total_room_charge + @tax; mysql> SELECT @total; +--------+ | @total | +--------+ | 324 | +--------+
Using the mysql Client Program
Writing MySQL-Based Programs
Record Selection Techniques
Working with Strings
Working with Dates and Times
Sorting Query Results
Generating Summaries
Modifying Tables with ALTER TABLE
Obtaining and Using Metadata
Importing and Exporting Data
Generating and Using Sequences
Using Multiple Tables
Statistical Techniques
Handling Duplicates
Performing Transactions
Introduction to MySQL on the Web
Incorporating Query Resultsinto Web Pages
Processing Web Input with MySQL
Using MySQL-Based Web Session Management
Appendix A. Obtaining MySQL Software
Appendix B. JSP and Tomcat Primer
Appendix C. References