Syntax for input parameters in a MySQL query - mysql

We recently switched a database from MSSQL to MySQL and the queries that uses parameters does'nt work anymore.
Here's an example of a query in MSSQL:
SELECT * FROM users u WHERE u.ID = :id
Normally, the parameter browser would popup and ask me for a value for :id, but in MySQL I get this error :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':id'
I tried using a # or ? instead of : and it does'nt work.
Thanks in advance for the help.

syntax is not the same
set #id:=123;
SELECT * FROM users u WHERE u.ID = #id;
Docs for User defined variables

Related

'Cant get attributes from Select' while setting up Query for export data task in DBeaver

Hey so I'm trying to set up an export data task in DBeaver, because I want to export some data to another database and I want to query the date in beforehand. So I'm trying to use this SELECT statement
SELECT *
FROM resource
WHERE assignedteamid = 2 AND active;
which works fine on its own but when I'm trying to add this query in the Task setup screen and click on continue I get this Error
Can't get attributes from `SELECT * FROM resource WHERE assignedteamid = 2 AND active;`
Reason: SQL Error [1064] [42000]: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 1' at line 4
I already tried to change up the query but I have no clue what I need to do to fix this problem. I appreciate any help.
Thank you!

DBeaver export to csv: "No database selected"

select * from users u
where u.id < 1000
When I right-click to script, and export I get no database selected error.
When I add "use db" command at above,I get a syntax error.
use db
select * from users u
where u.id < 1000
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM..'
How do I export in DBeaver?
I use a MacOS, and db is using MariaDB if that matters.
Based on your comment I understand now this is a usage question about DBeaver. You simply need to make sure to select your database in the menu bar above the script tab as outlined here: https://dbeaver.com/docs/wiki/SQL-Editor/. See below screenshots for example:
Either you have to separate multiple statements by a semicolon (1) or you can pass the database name directly to your statement (2):
(1):
use db;
select columns from users u ...
(2):
select columns from db.users u ....

What's the correct MySQL query syntax in AWS DataAPI for Aurora SQL Serverless database?

I have an AWS Aurora SQL Serverless database cluster, I enabled DataAPI for it so I can query data from AWS console, it works fine if I do select * from db.table_name LIMIT 10;, but it says Database returned more than the allowed response size limit if I query without LIMIT 10.
From reading AWS doc, it looks like the max response is 1000, so I'm thinking I can query with a WHERE staement, so I tried:
select * from db.table_name
where `data` == `xxxxx`;
It complains:
Database error code: 1064. Message: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax
I tried to use a differen quote' ', still not working... does anyone know what's the correct syntax here?
Thanks.
== is not an operator in SQL.
Refer to https://dev.mysql.com/doc/refman/5.7/en/non-typed-operators.html
Also the back-ticks are correct syntax, but I guess you mean for data to be a column name and 'xxxxx' to be a string literal.
Use straight single-quotes for string literals. Use back-ticks only for identifiers.
So your query should probably (I'm extrapolating) look like this:
select * from db.table_name
where `data` = 'xxxxx';

Knexjs 2 Join a table from another Schema

i'm trying to join a table from the database account into the database player. Table names are player, player and account, account. I have account_id in table player and id in table account.
So i tried this code but i get following error with nodejs:
Unhandled rejection Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.account on player.account_id = account.id' at line 1
This is my code:
knex.withSchema('player').table('player').select('player.*').leftJoin(knex.withSchema('account').table('account'),'player.account_id','account.id')
I have to use Mysql 5.6. Appreciate every solution
I don't see any straightforward approach using withSchema as its one schema all over the builder block. I used joinRaw() in my use case.
knex.withSchema('player').table('player').select('player.*')
.joinRaw('left join ?? on ?? = ??',['account.account','player.account_id','account.id'])
output:
select `player`.* from `player`.`player`
left join `account`.`account` on `player`.`account_id` = `account`.`id`
Note: Positional bindings ? are interpreted as values and ?? are interpreted as identifiers.

Syntacts error in mysql query

Someone gave me this query to delete community from a database on my server using phpMyAdmin, it worked when he use it so I asked him to send it to me, but I get a error
MySQL said:
Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"SELECT * FROM `connections` WHERE 1" :
delete from connections where communit' at line 1
I did a search on the error but could not figure it out.
"SELECT * FROM `connections` WHERE 1" :
delete from connections where community="XYZ"
You should separate your queries with ; and not :
The error you are receiving as you've shown it is because this line is incorrect:
SELECT * FROM `connections` WHERE 1"
First because it's ending in an unnecessary double quotation mark. MySQL does not use double quotes but single quotes, and even still the other single quote is not there to match it.
The single quotes are also a problem for community="XYZ", this should read: community = 'XYZ'
Secondly, you don't have a condition for your where statement, you must be missing something like:
WHERE columnName = 1;
If you were trying to select everything from connections, you can just remove that where clause all together.
EDIT
In addition, MySQL queries are separated by a semi-colon, not a colon, so MySQL will not realize you are trying two different queries.