MySQL Select Query With Where Condition Using String Variables
Myself trying to pass string variable to where condition in MySQL query as given in this stack overflow answer as given below.
select @start := ' and Id=21';
select * from myTable where 1=1 @start;
So how can I use string variable with where condition in MySQL queries. The variables are set dynamically and the query runs within procedure.
EDIT: I also tried
SET @start = ' Id=21 ';
select * from myTable where (select @start);
But no use.
Answer
No you cannot do that. The columns and the condition in the select clause needs to be fixed when you are preparing the select
statement.
So you cannot make a dynamic where clause statement like the one you posted. In that example, the values in the column are dynamic not the column names.
The manual says:
A conditional object consists of one or more conditional fragments that will all be joined by a specified conjunction. By default, that conjunction is AND.
Related Questions
- → I can't do a foreign key, constraint error
- → How to implement DbDongle::convertTimestamps as workaround of invalid timestamps with MySql strict
- → MySQL error "Foreign key constraint is incorrectly formed"
- → Eloquent Multitable query
- → "Laravel 5.1" add user and project with userId
- → Database backup with custom code in laravel 5 and get the data upto 10 rows from per table in database
- → Laravel 5.1 QueryException when trying to delete a project
- → Using Array in '->where()' for Laravel Query Building
- → Chaining "Count of Columns" of a Method to Single Query Builder
- → Laravel Eloquent Joining Strange query
- → convert time using mysql laravel 5
- → How to update a column after an expiration date in MySQL?
- → Foreign key constraint fails on existing key