Hey i am using a query like this:
INSERT INTO likes(
likes_memory_id,
likes_comment_id,
likes_owner_id,
likes_like
) VALUES (
:likes_memory_id,
:likes_comment_id,
:likes_owner_id,
:likes_like)
when ever an user click the like button, this query adds a new row. so this query allows to like multiple time. to prevent this i may use a select statement and i might succeed in two queries but i assue there is a better way to do it. (I made research about if not exists statement but i didnt understand too much ) How do I avoid multiple likes?
The simplest is to create a unique index on your columns which you want unique;
CREATE UNIQUE INDEX uq_mem_own ON likes(
likes_memory_id, likes_owner_id
);
...and insert likes using INSERT IGNORE, which will insert the value if it's not prevented by the index, otherwise just ignore it;
INSERT IGNORE INTO likes(
likes_memory_id,
likes_owner_id,
likes_like
) VALUES (
:likes_memory_id,
:likes_owner_id,
:likes_like)
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments